C語(yǔ)言示例講解for循環(huán)的用法
1、循環(huán)語(yǔ)句for的語(yǔ)法
for (表達(dá)式1;表達(dá)式2;表達(dá)式3)
循環(huán);
其中,表達(dá)式1是初始化;表達(dá)式2是判斷;表達(dá)式3是調(diào)整。
示例:用for循環(huán)打印1-10。
int main()
{
int i = 0;
for (i = 1; i < 11; i++)
printf("%d ",i);
return 0;
}
1 2 3 4 5 6 7 8 9 10
有一點(diǎn)需要說(shuō)明一下,如果判斷部分省略的話,就代表判斷的結(jié)果恒為真,代碼就會(huì)進(jìn)入死循環(huán)。如下面的這段代碼:運(yùn)行之后會(huì)一直打印haha
int main()
{
for (;;)
{
printf("haha\n");
}
return 0;
}

加上一些條件:
int main()
{
int i = 0;
int j = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("haha\n");
}
}
return 0;
}
上面的代碼會(huì)打印9次haha,現(xiàn)在省略i=0以及j=0的條件,查看運(yùn)行結(jié)果會(huì)發(fā)現(xiàn) 只打印三次
int main()
{
int i = 0;
int j = 0;
for (; i < 3; i++)
{
for (; j < 3; j++)
{
printf("haha\n");
}
}
return 0;
}
因?yàn)檫@個(gè)程序是先執(zhí)行j<3的那三次循環(huán),循環(huán)結(jié)束之后,j的值是3;此時(shí)i=1,j=3,已經(jīng)不滿足j<3的條件了,所以不會(huì)再打印haha
2、for循環(huán)中的break以及continue
在for循環(huán)中也是有break以及continue的,它們的意義和在while循環(huán)中的意義幾近相同,差異較小。
關(guān)于break,代碼如下,打印結(jié)果仍為:1 2 3 4
int main()
{
int i = 0;
for (i = 1; i < 11; i++)
{
if (i == 5)
break;
printf("%d ", i);
}
return 0;
}
關(guān)于continue,打印結(jié)果為1-4,6-10(與while循環(huán)中的continue的執(zhí)行結(jié)果不一樣),將上述代碼中的break改為continue即可。運(yùn)行結(jié)果如下:
1 2 3 4 6 7 8 9 10
運(yùn)行結(jié)果可以看出跳過(guò)了5,因?yàn)楫?dāng)i等于5時(shí),會(huì)跳過(guò)打印的那條語(yǔ)句,但是跳過(guò)打印之后還要執(zhí)行i++,所以后面的6-10依然會(huì)被打印。
for循環(huán)里面的continue會(huì)跳到調(diào)整部分;而while循環(huán)里面的continue則會(huì)跳轉(zhuǎn)出循環(huán)。
3、for語(yǔ)句的循環(huán)變量控制的一些建議
不可以在for循環(huán)體內(nèi)修改循環(huán)變量,防止for循環(huán)失去控制
下面的代碼就屬于在循環(huán)體內(nèi)改變循環(huán)變量,這樣不好
int main()
{
int i = 0;
int j = 0;
for (i = 0; i < 3; i++)
{
printf("%d ",i);
int j = 0;
for (j = 0; j < 3; j++)
{
printf("haha\n");
}
}
return 0;
}
建議for語(yǔ)句的循環(huán)控制變量的取值采用“前閉后開區(qū)間”寫法。
for (i = 1; i < 10; i++)這種寫法就是“左閉右開”區(qū)間;for (i = 1; i <= 9; i++) 這樣的語(yǔ)句跟左閉右開的寫法是一樣的意思,但是不建議這么寫。左閉右開的寫法可以使得程序的可讀性更高。
4、for循環(huán)的變種
用兩個(gè)變量來(lái)控制循環(huán)也是可以的。
int main()
{
int x, y;
for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
{
printf("haha\n");
}
return 0;
}
運(yùn)行結(jié)果會(huì)打印兩個(gè)haha
5、題目
看看下面的代碼會(huì)循環(huán)多少次?
int main()
{
int i = 0;
int k = 0;
for (i = 0, k = 0; k = 0; i++, k++)
{
k++;
}
return 0;
}
運(yùn)行結(jié)果:
運(yùn)行結(jié)果啥也沒有,因?yàn)樵跅l件按斷處的k=0屬于是賦值,將0賦值給了k,0為假,這里這條語(yǔ)句它就不是判斷條件了,所以會(huì)循環(huán)0次,打印無(wú)結(jié)果。
到此這篇關(guān)于C語(yǔ)言示例講解for循環(huán)的用法的文章就介紹到這了,更多相關(guān)C語(yǔ)言for循環(huán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++中BitSet和Bloom_Filter的實(shí)現(xiàn)
本文主要介紹了C++中BitSet和Bloom_Filter的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
C++圖形界面開發(fā)Qt教程:嵌套圓環(huán)示例
這篇文章主要介紹了C++實(shí)現(xiàn)圖形界面開發(fā)Qt教程,涉及坐標(biāo)函數(shù)的應(yīng)用及圖形界面程序設(shè)計(jì),需要的朋友可以參考下,希望能給你帶來(lái)幫助2021-08-08
C語(yǔ)言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)快速排序圖文示例
這篇文章主要為大家介紹了C語(yǔ)言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)快速排序圖文示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

