--------------------------
--1-- 結構循環1.1 while循環1.2 do…while循環1.3 for循環--2-- break和continue2.1 break關鍵字2.2 continue關鍵字--------------------------
【寫在開頭:】
生活中的循環:
C語言中的循環:
循環結構是程序中一種很重要的結構。其特點是,在給定的條件成立時,反復執行某程序段,直到條件不成立為止。
C語言中提供了多種循環語句:
1)goto語句和if構成循環(已經被摒棄)
2)while語句
3)do-while語句
4)for語句
構成循環的幾個條件:
一般來說一個循環需要以下幾部分構成
1)循環控制條件
循環退出主要依據
2)循環體
循環過程中重復執行的代碼塊。
3)能夠讓循環結束的語句(遞增、遞減、真、假等)
1)語法格式
while(條件)
{
語句1;
語句2;
…
語句n;
}
2)while循環執行特點
當條件成立時一直執行程序體。
3)示例
從鍵盤上輸入一個數n,計算1+2+3…+n的值。
//定義變量 int i = 1, n = 0, sum = 0; //接受鍵盤輸入n並賦值給變量n printf("請輸入累加上限:\n"); scanf("%d",&n); //while循環條件小於n while (i <= n) { sum += i; //累加 i++; } printf("從1累加到%d的值是:%d\n",n,sum);
4)補充
scanf的原理:如果輸入緩沖區不為空,則不會讓用戶再次輸入內容,而直接沖緩沖區中繼續獲取。
最簡單的死循環:while(1);
1)語法格式
do{
語句1;
語句2;
…
語句n;
}while(條件);
2)do…while循環的特點:
不管while中的條件是否成立,至少會執行一次循環體。
3)while和dowhile的循環類型不同
while循環是一個當型循環,當條件滿足時再執行循環體;
do…while循環是直到型循環,先執行循環體,再判斷條件,直到條件為假時結束。
4)do...while示例
int x = -3; do{ printf("do...while\n"); x--; }while (x > 0); //do...while循環 無論條件是否滿足,循環體都會執行一次
1)for語法格式
C語言中for語句的使用最為靈活,完全可以代替while語句
一般形式:
for(表達式1;表達式2;表達式3){
語句塊;
}
2)for循環執行過程
執行順序:
1)先求表達式1,給i初始化
2)求解表達式2,若其值為真(非0),則執行for語句中指定的內嵌語句-->表達式3
3)執行表達式4
-->循環完一遍之後執行第二步,再依次往下
注意:步驟1)在整個循環中只執行一次
3)for循環的其他形式
1)表達式1省略
int i = 0; for (; i < 5; i++){ printf("%d", i); }
2)表達式1、3省略
int i = 0; for (; i < 5;){ printf("%d", i); i++; }
3)表達式1、2、3省略
int i = 0; for(;;){ if (i < 5){ printf("%d", i); i++; } else{ break; } }
4)最簡單的for循環
for (; ; );
5)for循環的嵌套使用
打印圖形
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
分析:
內層循環打印一行,外層循環5次打印5行
for (int j = 0; j < 5; j++) { for (int i = 0; i < 5; i++) { //內層打印行 printf("*\t"); } printf("\n"); }
break和continue都可以用在循環中,用來跳出循環/結束循環
break用法
break語句通常用在循環和開關語句中。
注意:
1)break對if-else不起作用。
2)break用於跳出當前循環(結束當前循環)。
3)break影響的是當前的這個循環,對外層循環不起作用
示例
計算r=1到r=10時圓的面積,直到面積大於100為止
分析:
圓的面積 area = 3.14 * r * r;
//計算r=1到r=10時圓的面積,直到面積大於100為止 for (int r = 1; r <= 10; r++) { double area = 3.14 * r * r; if (area > 100) { break; //面積大於100 結束循環 } printf("area = %.2f\n", area); }
continue用於結束本次循環,繼續下次循環
continue只用在for、while、do-while等循環體中,常與if語句一起使用,用來加速循環
示例
把100-200之間不能被3整除的數輸出。
分析:
被3整除時結束本次循環進入下一次
//把100-200之間不能被3整除的數輸出 for (int i = 100; i <= 200; i++) { if (i % 3 == 0) { continue; //整除則跳出本次循環 } printf("i = %d\n", i); }
總結:
從上面可以看出:
break跳出循環後循環就結束了,而continue跳出循環後還繼續下一次循環。這就是最大的區別。
【寫在結尾:】
『下雨了,滴答滴答,從小最喜歡的,就是聽雨的聲音...』