無償分享學習資料,需要的小伙伴評論區或私信dd。。。
無償分享學習資料,需要的小伙伴評論區或私信dd。。。
無償分享學習資料,需要的小伙伴評論區或私信dd。。。
完整資料如下:純干貨、純干貨、純干貨!!!
關注專欄:<后續持續更新>
目錄
循環結構語句
1.while循環語句
2.do-while循環語句
3.for循環語句
4.goto語句
循環結構的嵌套
三種循環的比較
break語句
continue語句
break與continue的區別:
循環結構語句
分類:while循環語句、do-while循環語句、for循環語句、goto語句。
-
所有循環語句與選擇語句相同,若后面的循環體是一個復合語句則需要加上{}括起來。
-
一般情況下三種循環語句可以相互替換(只有while與for無條件等價)
-
只有for循環可以缺省表達式(while與do-while都不可以)
1.while循環語句
格式:
while(表達式){ //只要條件表達式為真就執行下面的循環體循環體;
}
-
while語句的特點是先判斷條件表達式、后執行循環體語句(這點與do-while區別)
-
while后面的表達式稱為循環條件表達式(24年真題)
-
while配合getchar賦值,只要第一次滿足條件,那么讓你多次輸入直到不滿足條件為止
char ch; while((ch=getchar())!='9');//只要不等于9,那么執行空語句,返回去再判斷,判斷又要進行輸入 printf("ok");
2.do-while循環語句
格式:
do{循環體;//先無條件執行一次,在判斷循環條件,為真則繼續執行
}
while(表達式);
-
do-while循環是先無條件執行一次循環體,再去判斷循環條件(這點與while不同),即do-while至少執行一次循環體
-
do后面不允許加分號,while后面必須加分號
3.for循環語句
格式:
for(表達式1;表達式2;表達式3){循環體;
}
//表達式1:設置初始條件,只執行一次。可以為零個、一個或多個變量設置初值
//表達式2:循環判斷條件(循環條件表達式)
//表達式3:循環變量的增值或減值(使循環趨于結束的條件)
-
for循環不僅可以解決循環未知的問題,還特別適合解決循環次數未知的問題,可完全代替while語句,即兩者無條件等價。
-
表達式1還可以是與循環無關的其他表達式,同時允許在表達式1內定義變量并初始化(此變量作用域只限于for語句),如果定義多個變量,那么多個變量只能是同一數據類型
for(sum=0;i<100;i++){sum+=i}//與循環無關的變量 ? for(int sum=0;i<100;i++){sum+=i}//定義并初始化 ? for(int i=1,sum=0;i<100;i++);//i與sum都是int類型
-
表達式2省略時循環條件一直為真,導致for循環無終止死循環(可以在循環體中配合break判定)
-
表達式3省略需要在循環體內設置趨于結束的循環條件(即表達式3與循環體內的內容可以調換位置。
-
當三個表達式都省略時,for循環會陷入死循環
for(;;){printf("ok");//無終止輸出“ok” }
-
三個表達式都可以是逗號表達式。
for(int i=0,sum=1;i<100,sum<200;i++,sum++){printf("ok"); } ??注意:此時表達式2以最后一個終止條件為準。
-
三個循環語句中,只有for循環可以缺省循環條件表達式。
-
表達式1一般在for語句之前定義并初始化,因為這樣可以在for語句之外拿到循環變量的值。
int i=0; for(;i<=10;i++){printf("ok\n"); } ??注意:循環結束后,循環變量等于循環結束的終止值+1,即這里的i最后等于11。
-
表達式3可以與循環體互換位置,作用效果相同。
for(int i=0;i<10;i++){printf("%d\n",i); }等價于:for(int i=0;i<10;printf("%d\n",i),i++);
4.goto語句
格式:goto 語句標號;
loop:if(i<100){sum+=i;i++;goto loop;//在執行到goto語句時,跳轉到上面語句標號的位置執行
}
-
goto 語句與語句標號:必須在同一函數內(即在同一函數內,可以跳轉到任何地方)
-
語句標號:不允許放在初始化語句和聲明語句前面
loop:int i 和 loop int i=1都是錯誤的
-
goto語句通常與if語句連用以構成循環的目的。
loop:if(i<100){sum+=i;i++;goto loop;//在執行到goto語句時,跳轉到上面語句標號的位置執行 }
循環結構的嵌套
定義:在一個循環語句中又包含另一個完整的循環語句稱為循環嵌套
-
三種循環語句可以相互嵌套。
-
內循環使用break與continue對外循環沒有影響。
三種循環的比較
-
一般情況下,3種循環可以相互替換。
-
while和do-while的循環體中必須指定循環趨于結束的語句,而for可以放在表達式3也可以放在循環體中。
-
while和do-while的循環初始條件操作應該放在while和do-while之前完成。
break語句
作用:終止循環,跳出循環體(還可以跳出switch分支)
-
break只能用于循環語句與switch語句之中,不能單獨使用。(如果出現在其他語句中,說明其他語句在循環或switch中)
int a=12; for(int i=0;i<a;i++){if(i==5)break;//出現在if語句中,原因if在for語句中 }
continue語句
作用:終止“本次”循環
-
continue只能出現在循環體中(如果出現在其他語句中,說明其他語句在循環中)
int a=12; for(int i=0;i<a;i++){switch(i){case 12:break;case 10:continue;} }
break與continue的區別:
break是結束當前循環,所以在嵌套循環中,內循環遇到一個break,是結束整個內循環,但是沒有結束外循環
continue是結束本次循環,所以在嵌套循環中,內循環遇到一個continue,是結束內循環這一次的循環條件,直接進行到內循環下一個
循環條件