《java核心技術-第三章筆記》關於while迴圈
阿新 • • 發佈:2022-04-01
全文程式碼已測試完全可執行
手敲版本TAT
while迴圈語句
- 首先是一個while然後把條件放在小括號裡
- 這個條件可以是任何有布林值的表示式也就是
false
或者true
- 然後是想在迴圈中執行的一個或多個語句
- 如果不只一個語句需要將其包括在花括號中
{ }
- 在這裡進入迴圈,檢查這個條件,如果條件為
true
就執行迴圈中的這個程式碼 - 再回到最上面再次檢查條件,當這個條件為
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語句的一個變種
- 在這個語句中條件檢查放在最下面
- 關鍵字
do
放在最上面,關鍵字while
放在最下面 - 同樣這樣的條件要放在小括號裡
- 對於
do while
語句,最上面沒有任何條件,指示我們第一次進入迴圈,迴圈結束時才會檢查這個條件 - 如果條件為
true
就回到最上面,如此繼續 -
do while
語句不太常用,不過有一種情況會經常用到,這就是讀輸入時 - 在這個例子中,我們希望列印輸出之後詢問使用者,問他們是否還想繼續,只要他們說還沒準備退出,我們就要繼續累加銀行賬戶裡的存款
- 不過為了合理起見,我們要直接執行一次,而不先問問題
- 之所以使用
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")); }