while loop

while 迴圈

分成兩種,前判斷while與後判斷do...while。

while迴圈:前判斷式,當條件成立則執行。

while (條件){

指令

}

※前判斷式while()後面無分號,當條件不成立時可能一次都不會執行。※

範例:

sum=0;

i=1;

while (i<=10){

sum+=i;

i++;

}

[練習題一]

輸入一個整數,宣告為long long,以while迴圈計算該整數位數。

輸入1:5050

輸出1:4

輸入2:1010500

輸出2:7

提示:回圈內、除以10、位數變數+1,迴圈外輸出位數變數。


do...while迴圈:後判斷式,至少會執行一次指令,直到條件不成立才結束(一樣是條件成立才回去do繼續執行)。

do{

指令

} while (條件);

※後判斷式do...while()後面要加上分號。※

範例:

sum=0;

i=1;

do{

sum+=i++;

} while (i<=10);

[練習題二]

輸入一個整數,宣告為long long,以do while迴圈計算該整數位數。

(你沒看錯,就是同一題,改用後判斷式來做。)

輸入1:5050

輸出1:4

輸入2:1010500

輸出2:7

提示:回圈內、除以10、位數變數+1、注意跳出迴圈條件,迴圈外輸出位數變數。

[練習題三]

1.輸入一個整數,宣告為long long,以do while迴圈計算該整數位數(位數不同不補0)。

2.輸入一個整數,宣告為long long,以do while迴圈計算該整數位數(反轉位數與原值同,意即前面補0)。

提示:利用兩次do while,使用遞增運算子++。

[練習題四]

1.輸入一個整數,宣告為long long,計算位數並將該整數倒轉。(數學計算法)

2.輸入一個整數,宣告為long long,計算位數並將該整數倒轉。(陣列計算法)

輸入1:1230

輸出1:0321

輸入2:10205

輸出2:50201

提示不足位前面要補0。

[練習題一]以while解位數

[練習題二]do while解位數

以do while迴圈較好判斷。

[練習題三]解法一_do while解位數、不補0

[練習題三]解法二_do while解位數、並補0

[練習題四]解答一_do while數學計算法

[練習題四]解答二_do while陣列法