迴圈 - 程式設計

Download Report

Transcript 迴圈 - 程式設計

迴圈








迴圈基本觀念
while 迴圈
do 迴圈
for 迴圈
巢狀迴圈
迴圈設計注意事項
其他控制指令
迴圈與選擇的組合
迴圈基本觀念
 迴圈是用來重複執行一段特定的程式,直到
某條件滿足為止。
Count=0
Count=0
Count=0;
while (Count<100)
{
/***** 處理工作 ****/
Count=Count+1;
}
True
Count<100?
Count<100?
False
處理運算
處理運算
Count=Count+1
Count=Count+1
while 迴圈
while ( 條件運算式 ) statement;
運算式
運算式
while ( 條件運算式 )
{
statements;
}
處理運算
處理運算
False
Count=0;
while (Count<100)
{
/***** 處理工作 ****/
Count=Count+1;
}
條件運算式成立的時候執行指令。
參考 demo10.java
True
do 迴圈
 do
{
statement;
}
while ( 條件運算式 );
Count=0;
do
{
/***** 處理工作 ****/
Count=Count+1;
} while (Count<100);
參考 demo11.java
處理運算
處理運算
運算式
運算式
True
False
for 迴圈
 for 迴圈可以準確的計算出迴圈的重複次數。
 for ( 設定初始值; 條件運算式 ; 增值) stateme
nt;
count=0;
for (i=0; i<=100; i=i+1) count=count+1;
 課堂作業:
 利用 while 迴圈計算 2+4+6...+n 的和 (n 是偶數 )
 利用 for 迴圈計算 1+3+5...+n 的和 (n 是奇數 )
 實習作業:
 計算 1+1/2+1/3+....+1/n 的結果 參考 demo12.java
2
2
2
2
巢狀迴圈
 可以在迴圈內部包含迴圈的指令,執行時由最內
部的迴圈先執行,然後才執行外部的迴圈。
1
例:
99
乘法表
,
印出

22
1
22
333
4444
55555
333
4444
55555
 課堂練習:印出
 課堂作業:計算 1!+2!+...+n! 的總和
 實習練習:計算 1/1!+1/2!+1/3!+...+1/n!
參考 demo13.java
迴圈設計注意事項
 各個變數初始值的設定
 確定迴圈跳出條件是否能滿足?避免無窮迴
圈
 「 = 」與「 == 」的誤用
 善用 System.out.println() 列印出迴圈中間值
來除錯
其他控制指令
 break :跳出迴圈。
課堂練習 : 一條線 3000 公分
,每天減去一半的長度,幾天之
後線的長度短於 5 公分
實習作業:丟骰子累計數目,
看幾次超過 100 點
計算梯型面積 >1000 跳出
i=0;
while(true)
{
if (i==3) break;
else i=i+1;
}
 continue :直接跳到迴圈判斷處。
i=0;
while(i<10) {
i=i+1;
if (i%3==0) continue;
System.out.println("i=",+i);
}
參考 demo14 15
選擇與迴圈的組合
 利用電腦的快速運算,我們無須尋找精確的解
題方法,而可以直接將選擇與迴圈組合起來,
暴力算出解答
 質數判斷、因數分解、密碼破解
 例題:
 計算最大公因數
 印出 1 到輸入值之間所有可以被 16 整除的數
 由使用者輸入一個整數,此數如果是偶數就將之除
以 2 ,如果是奇數就將之 *3+1 ,最後此數會收斂
在 1 ,請寫程式驗證這個過程。
作業
 課堂作業:
 由鍵盤輸入一個數字,列出該數之所有因數
 由鍵盤輸入一個數字,印出 1 到該數字間,可以被
7 整除但不能被 3 整除的數值
 實習作業:
 找出小於某整數之所有質數
 讀入一個 12 位數的長整數,利用 switch 計算 09 這 10 個數字,每一個數字出現的次數
 假設錢幣種類有 1000,500,100,50,10,5,1 元,請
計算你拿 1000 元購買 N 元的東西,店員應找回各
種錢幣幾張 ( 張數儘量少 )