c語言的三種循環(huán)語句分別是?
三種循環(huán)基本語句:1、while循環(huán)語句,語法“while(表達式){語句塊}”;2、do-while循環(huán)語句,語法“do{語句塊}while(表達式);”;3、for循環(huán)語句,語法“for(初始化語句;循環(huán)條件;自增或自減){語句塊}”。
本教程操作環(huán)境:windows7系統(tǒng)、c99版本、Dell G3電腦。
C語言中用于實現(xiàn)循環(huán)結構的三種基本語句是:while循環(huán)語句、do-while循環(huán)語句、for循環(huán)語句。
教程推薦:《c語言教程視頻》
while循環(huán)語句
while循環(huán)的一般形式為:
1
2
3
while(表達式){
語句塊
}
意思是,先計算“表達式”的值,當值為真(非0)時, 執(zhí)行“語句塊”;執(zhí)行完“語句塊”,再次計算表達式的值,如果為真,繼續(xù)執(zhí)行“語句塊”……這個過程會一直重復,直到表達式的值為假(0),就退出循環(huán),執(zhí)行 while 后面的代碼。
我們通常將“表達式”稱為循環(huán)條件,把“語句塊”稱為循環(huán)體,整個循環(huán)的過程就是不停判斷循環(huán)條件、并執(zhí)行循環(huán)體代碼的過程。
用 while 循環(huán)計算1加到100的值:
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
int main(){
int i=1, sum=0;
while(i<=100){
sum+=i;
i++;
}
printf("%d\n",sum);
return 0;
}
運行結果:
1
5050
代碼分析:
1) 程序運行到 while 時,因為 i=1,i<=100 成立,所以會執(zhí)行循環(huán)體;執(zhí)行結束后 i 的值變?yōu)?2,sum 的值變?yōu)?1。
2) 接下來會繼續(xù)判斷 i<=100是否成立,因為此時 i=2,i<=100 成立,所以繼續(xù)執(zhí)行循環(huán)體;執(zhí)行結束后 i 的值變?yōu)?3,sum 的值變?yōu)?。
3) 重復執(zhí)行步驟 2)。
4) 當循環(huán)進行到第100次,i 的值變?yōu)?101,sum 的值變?yōu)?050;因為此時 i<=100 不再成立,所以就退出循環(huán),不再執(zhí)行循環(huán)體,轉而執(zhí)行while循環(huán)后面的代碼。
while 循環(huán)的整體思路是這樣的:設置一個帶有變量的循環(huán)條件,也即一個帶有變量的表達式;在循環(huán)體中額外添加一條語句,讓它能夠改變循環(huán)條件中變量的值。這樣,隨著循環(huán)的不斷執(zhí)行,循環(huán)條件中變量的值也會不斷變化,終有一個時刻,循環(huán)條件不再成立,整個循環(huán)就結束了。
如果循環(huán)條件中不包含變量,會發(fā)生什么情況呢?
1) 循環(huán)條件成立時的話,while 循環(huán)會一直執(zhí)行下去,永不結束,成為“死循環(huán)”。
2) 循環(huán)條件不成立的話,while 循環(huán)就一次也不會執(zhí)行。
do-while循環(huán)
除了while循環(huán),在C語言中還有一種 do-while 循環(huán)。
do-while循環(huán)的一般形式為:
1
2
3
do{
語句塊
}while(表達式);
do-while循環(huán)與while循環(huán)的不同在于:它會先執(zhí)行“語句塊”,然后再判斷表達式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)。因此,do-while 循環(huán)至少要執(zhí)行一次“語句塊”。
用do-while計算1加到100的值:
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
int main(){
int i=1, sum=0;
do{
sum+=i;
i++;
}while(i<=100);
printf("%d\n", sum);
return 0;
}
運行結果:
1
5050
注意while(i<=100);最后的分號;,這個必須要有。
for循環(huán)語句
除了while循環(huán),C語言中還有 for 循環(huán),它的使用更加靈活,完全可以取代 while 循環(huán)。
for 循環(huán)的一般形式為:
1
2
3
for(表達式1; 表達式2; 表達式3){
語句塊
}
它的運行過程為:
1) 先執(zhí)行“表達式1”--“初始化語句”。
2) 再執(zhí)行“表達式2”--“循環(huán)條件”;如果它的值為真(非0),則執(zhí)行循環(huán)體,否則結束循環(huán)。
3) 執(zhí)行完循環(huán)體后再執(zhí)行“表達式3”--“自增或自減”。
4) 重復執(zhí)行步驟 2) 和 3),直到“表達式2”的值為假,就結束循環(huán)。
上面的步驟中,2) 和 3) 是一次循環(huán),會重復執(zhí)行,for 語句的主要作用就是不斷執(zhí)行步驟 2) 和 3)。
“表達式1”僅在第一次循環(huán)時執(zhí)行,以后都不會再執(zhí)行,可以認為這是一個初始化語句。“表達式2”一般是一個關系表達式,決定了是否還要繼續(xù)下次循環(huán),稱為“循環(huán)條件”。“表達式3”很多情況下是一個帶有自增或自減操作的表達式,以使循環(huán)條件逐漸變得“不成立”。
for循環(huán)的執(zhí)行過程可用下圖表示:
1.jpg
用for語句計算1加到100的值:
1
2
3
4
5
6
7
8
9
#include <stdio.h>
int main(){
int i, sum=0;
for(i=1; i<=100; i++){
sum+=i;
}
printf("%d\n",sum);
return 0;
}
運行結果:
1
5050
代碼分析:
1) 執(zhí)行到 for 語句時,先給 i 賦初值1,判斷 i<=100 是否成立;因為此時 i=1,i<=100 成立,所以執(zhí)行循環(huán)體。循環(huán)體執(zhí)行結束后(sum的值為1),再計算 i++。
2) 第二次循環(huán)時,i 的值為2,i<=100 成立,繼續(xù)執(zhí)行循環(huán)體。循環(huán)體執(zhí)行結束后(sum的值為3),再計算 i++。
3) 重復執(zhí)行步驟 2),直到第101次循環(huán),此時 i 的值為101,i<=100 不成立,所以結束循環(huán)。