while { 語句; } 語句;
1.首先判斷while後面括號內的語句是否爲真,若爲真則進入循環,執行大括號內的語句,若爲假,則跳過while循環執行循環體外的語句。 2.若在while的大括號內執行了break語句,則循環馬上終止,跳出循環去執行循環體外的語句。 3.一直循環到while後面小括號的表達式爲假,循環才結束。
do { 循環語句; }while(循環條件);
1.先無條件執行一次循環體內的語句而後再判斷循環條件的真假,除此以外與while循環結構一致。 2.特別注意在循環條件後面加上一個分號,表示循環的結束。
int i,j,n; for(i=0;i<n;i++) { for(j=0;j<i;j++) { } }
1.外層循環一次,內層循環一輪。 2.若是在內層循環遇到break語句,則跳出內層循環,外層循環繼續。
1.若是已經知道循環次數,則選擇使用for循環更適合。 2.在不知道循環次數的狀況下,更適合使用while循環或者do while循環,若是有可能一次循環都不執行,應該考慮使用while循環,若是至少循環一次,應該考慮使用do while循環。
1.在沒有循環結構的狀況下,break不能用在單獨的if-else語句中。 2.在多層循環中,一個break語句只能跳出當前循環。 3.continue語句的做用是跳過循環體後面的語句,繼續下一次循環。 4.continue語句和break語句的區別在於,break語句結束循環,而continue語句只是跳事後面的語句繼續循環。break語句除了能夠停止循環,還用於switch語句,而continue語句只能用於循環。
代碼量爲800行左右,離目標還差一大截。安全
輸入比賽時間T do { if(十分鐘後兔子仍是比烏龜快) { if(30分鐘後比賽沒有結束) { tortoise = tortoise + 3 * 30; time = time + 30; } else沒有到30分鐘比賽結束 {tortoise = tortoise + (T - time) * 3; break; } } tortoise = tortoise + 3; rabbit = rabbit + 9; time++; }while(比賽時間不等於比賽結束用時) 輸出比賽結果及勝利者所跑距離
輸入數據 | 輸出數據 | 說明 |
---|---|---|
242 | @_@ 726 | 正常數據 |
9 | ^_^ 81 | 小於十分鐘 |
30 | -_- 90 | 臨界數據 |
改完後提交發現輸出仍是有問題,再從新審題,發現輸出表情後面多了一個空格。學習
輸出菜單 for(循環五次) { 輸入選擇的編號 if(輸入的編號爲零) 退出,程序結束; switch(編號) { case 1:price = 3.00; break; case 2:price = 2.50; break; case 3:price = 4.10; break; case 4:price = 10.20; break; case 0:break; default:輸入其餘編號,價格爲零;退出; } 輸出價格 }
輸入數據 | 輸出數據 | 說明 |
---|---|---|
3 | price=4.10 | 正常數據 |
0 | 無 | 0數據 |
6 | price=0.00 | 非正常數據 |
從新檢查每一次輸出都有菜單出來,因而把輸出菜單放到for循環外面。測試
輸入一個正整數n if(n<20) { for(從2^2-1開始循環) { num = pow(2, i) - 1; for(判斷素數) { if(不是素數)退出; if(是素數) { 輸出素數的值 count++; } } } } if(count==0) 輸出「None」
輸入數據 | 輸出數據 | 說明 |
---|---|---|
6 | 3 7 31 | 正常數據 |
2 | 3 | 特殊數據 |
0 | None | 0數據 |
再檢查發現給j的初值是1,而後把j=1改爲j=2。3d
第二個同窗的代碼相對於個人就更簡潔,引入了變量flag,使整個程序更簡潔明瞭,值得學習。另外,代碼的排版整潔有序,可讀性強。代碼規範