while(條件式) { // 當條件式為true時,執行迴圈內程式 // 迴圈內程式 }
p.141 Figure 4.1 counter-controlled loop
int sum = 0, count = 1; while (count < 10) { sum = sum + count; System.out.printf("count=%d, sum=%d\n", count, sum); count++; // 移除此行時,會發生何種狀況? } System.out.printf("sum=%d\n", sum);
p.141 Caution
參考 p.142 程式 Listing 4.1 GuessNumberOneTime.java
參考 p.143 程式 Listing 4.2 GuessNumber.java
while(true) { Statements; }
參考 p.145 程式 Listing 4.3 SubtractionQuizLoop.java
參考 p.147 程式 Listing 4.4 SentinelValue.java
do { // 先執行迴圈內程式,然後再判斷條件式 // 迴圈內程式 (至少被執行1次) } while(條件式) // 當條件式為true時,繼續執行迴圈內程式
public class EX04A_While { public static void main(String[] args) { int count = 1; while (count <= 10) { System.out.print(count + " "); count++; // 移除此行會陷入無限迴圈 } System.out.println("列印完畢"); } }
public class EX05A_DoWhile { public static void main(String[] args) { int count = 11; do { System.out.printf("count=%d\n", count); count++; // 移除此行會陷入無限迴圈 } while (count <= 10); System.out.println("列印完畢"); } }
參考 p.149 程式 Listing 4.5 TestDoWhile.java
for(int count=1; count<=10; count++){ // 迴圈內程式 }
以分號;將for迴圈分成3部分
p.150 Figure 4.3 for loop
public class EX06A_For { public static void main(String[] args) { for (int count = 1; count <= 10; count++) { System.out.print(count + " "); } System.out.println("列印完畢"); } }
for (int cnt1 = 0, cnt2 = 0; cnt1 + cnt2 < 10; cnt1 ++, cnt2 ++) { // 迴圈內程式 }
使用 if, break等方式來停止迴圈
p.152 Note
for (;;) { // do something }
for (; true;) { // do something }
while (true) { // do something }
for (initial-action; loop-continuation-condition; action-after-each-iteration) { // loop body }
initial-action; while (loop-continuation-condition;) { // loop body action-after-each-iteration; }
p.152 Caution 注意分號 ;
參考 p.153 程式 Listing 4.6 MultiplicationTable.java
參考 p.154 程式 Listing 4.7 TestSum.java
public class EX07_TestSum { public static void main(String[] args) { // Initialize sum float sum = 0; float i; // Add 0.01, 0.02, ..., 0.99, 1 to sum for (i = 0.01f; i <= 1.0f; i = i + 0.01f) { sum += i; System.out.println("I=" + i + " sum=" + sum); } // Display result System.out.println("I=" + i + " The sum is " + sum); } }
參考 p.156 程式 Listing 4.8 GreatestCommonDivisor.java
參考 p.157 程式 Listing 4.9 FutureTuition.java
參考 p.158 程式 Listing 4.10 MonteCarloSimulation.java
參考 p.159 程式 Listing 4.11 TestBreak.java
參考 p.160 程式 Listing 4.12 TestContinue.java
參考 p.161 程式 Listing 4.13 GuessNumberUsingBreak.java
參考 p.162 程式 Listing 4.14 PrimeNumber.java
參考 p.164 程式 Listing 4.15 SentinelValueUsingConfirmationDialog.java