---恢復內容開始---編程
實驗結論:spa
demo5-1結果:code
demo5-2結果:blog
對比發現continue和break的區別:continue是結束此次的循環,由於i只能取1-5之間的整數,因此i=1 2 4 5 的時候都不是3的倍數,不用結束本次循環。break是結束整個循環i依舊能夠去1-5之間的數,但3是3的倍數,因此到3 的時候結束了整個循環,屏幕上再也不出現4和5io
對比demo6-1和6-2結果發現 break語句包含在嵌套裏,它只跳出最裏面的循環,不影響大循環,只是內部循環break以後的都沒有了。continue也不影響大循環,只跳過當前的小循環,後面的小循環繼續。class
part2:循環
源程序程序
#include <stdio.h> int main() { int number, max, min, n; n=1; printf("輸入第%d個數: ", n); scanf("%d", &number); max = number; min = number; while(n < 5) { n++; printf("輸入第%d個數: ", n); scanf("%d", &number); if(number > max) max = number; else if(number < min) min = number; } printf("最大數爲: %d\n", max); printf("最小數爲: %d\n", min); return 0; }
結果截圖:
im
part3:demo
#include<stdio.h> int main(){ int k,n,i; k=100; i=0; while(k<=200){ k++; for(n=2;n<=k;n++){ if(k%n==0&&n<k){ break; } else if(k%n!=0){ continue; } else{ printf("%4d",k); i++; if(i%5==0){ printf("\n"); } } } } printf("\n101~200之間共有%d個素數.",i); return 0; }
結果如圖:
*編程練習
#include<stdio.h> const int H=5; const int L=9; int main(){ int line,col,a,b; for(line=1;line<=5;++line){ a=6-line; b=4+line; for(col=1;col<=9;++col){ if(a>col||b<col){ printf(" "); continue; } printf("*"); } printf("\n"); } return 0; }
結果截圖:
我出現的錯誤和踩坑:
1.在作判斷三角形的時候,我把等腰的條件放在前面了,把等邊條件放在後面並且還加上了else if。如今我明白個人錯誤有兩點,一是等邊的條件比等腰的更加苛刻,也就是說,符合等邊的必定符合等腰的條件,而if語句是若是if後面的條件成立了就顯示這個if下面的,後面的就不看了,等邊三角形已經符合等腰的條件了,因此就出現了我明明打的是等腰三角形,屏幕上會打出「這是等腰三角形」的狀況。後來我把等邊的條件放在前面了但是等腰等邊條件我用的都是if,此時我輸入等腰三角形的數值後,屏幕上出現了「這是等腰三角形」「這是等邊三角形」,我才意識到我沒有加else if。先判斷是否是三角形(if) 若是是,判斷是否是等邊(if),若是不知足等邊這麼苦苛刻的條件,退而求其次,(else if)看看是否知足等腰的條件,若是等腰也不符合則(else)是通常三角形;若是不知足三角形條件(else),則不是三角形。
2.不知道如何跳出while循環,前面涉及到的while都是不須要終止的,我就照貓畫虎把這個的也寫上了,一開始寫的是n<=5,結果出來了6行文字。我以爲我這樣想邏輯是對的呀,後來改爲了<5就是5行了。個人理解是,n++在最後給n的值加上一。算完第一次,第二次開始算n的時候,n=2,以此類推。到算完第五行(正好符合題意)的時候,再算第六行的n,n=5,不符合題意。我仍是不太明白!!
3.星號編程題的邏輯真的好難啊,用腦子想我都懂,就是不知道怎麼用電腦表示出來,一開始我弄的符號只有前半段,嚇死我了,後來發現我把列數打錯了,仍是有點迷糊。
---恢復內容結束---
---恢復內容結束---