1. 程式人生 > 其它 >《java核心技術-第三章筆記》關於while迴圈

《java核心技術-第三章筆記》關於while迴圈

全文程式碼已測試完全可執行
手敲版本TAT

while迴圈語句

  1. 首先是一個while然後把條件放在小括號裡
  2. 這個條件可以是任何有布林值的表示式也就是false或者true
  3. 然後是想在迴圈中執行的一個或多個語句
  4. 如果不只一個語句需要將其包括在花括號中{ }
  5. 在這裡進入迴圈,檢查這個條件,如果條件為true就執行迴圈中的這個程式碼
  6. 再回到最上面再次檢查條件,當這個條件為true時,就會一直迴圈,直到最終條件變為false此時退出迴圈執行後面的程式碼
int balance=0;										//已經攢的錢
int goal=100_0000;									//預期攢的金額
int years=0;										//年份的初始化	
int payment=1000;									//每次攢的金額
int interestRate=5;									//年利率

while (balance < goal){												//已攢的錢和預期目標
    balance += payment;												//每次攢多少錢					
    double interest = balance * interestRate / 100;					//利息interestRate
    balance += interest;			//計算複利
    years++;
}
System.out.println("You can retire in " + years + " years " );		//你可以在X年後退休  計算完成 X=80

do while語句

這是while語句的一個變種

  1. 在這個語句中條件檢查放在最下面
  2. 關鍵字do放在最上面,關鍵字while放在最下面
  3. 同樣這樣的條件要放在小括號裡
  4. 對於do while語句,最上面沒有任何條件,指示我們第一次進入迴圈,迴圈結束時才會檢查這個條件
  5. 如果條件為true就回到最上面,如此繼續
  6. do while 語句不太常用,不過有一種情況會經常用到,這就是讀輸入時
  7. 在這個例子中,我們希望列印輸出之後詢問使用者,問他們是否還想繼續,只要他們說還沒準備退出,我們就要繼續累加銀行賬戶裡的存款
  8. 不過為了合理起見,我們要直接執行一次,而不先問問題
  9. 之所以使用do while迴圈,是因為需要先執行一次迴圈體,然後才可以計算迴圈條件
public static void main(String[] args) throws IOException {
        Scanner in = new Scanner(System.in) ;
        System.out.print("How much money will you contribute every year? ");    //每年攢多少錢
        double payment = in.nextDouble();
        System.out.print( "Interest rate in %: ");                   //年利率
        double interestRate = in.nextDouble();
        double balance = 0;
        int year = 0;
        String input;

        // update account balance while user isn't ready to retire
        //當用戶不準備退休時更新帳戶餘額
        do{
           // add this year's payment and interest  加上今年的付款和利息
            balance += payment;
            double interest = balance * interestRate / 100;
            balance += interest;                        //計算複利
            year++;
            // print current balance            列印當前餘額
            System.out.printf("After year %d,your balance is %,.2f%n",year,balance);
            // ask if ready to retire and get input
           // 詢問是否準備好退休並獲取資訊
            System.out.print ( "Ready to retire? (Y/N)");	//Y停止,N繼續
            input = in. next();

        }while (input.equals("N"));
 }