C語言示例講解for循環(huán)的用法
1、循環(huán)語句for的語法
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)需要說明一下,如果判斷部分省略的話,就代表判斷的結(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é)果可以看出跳過了5,因?yàn)楫?dāng)i等于5時(shí),會(huì)跳過打印的那條語句,但是跳過打印之后還要執(zhí)行i++,所以后面的6-10依然會(huì)被打印。
for循環(huán)里面的continue會(huì)跳到調(diào)整部分;而while循環(huán)里面的continue則會(huì)跳轉(zhuǎn)出循環(huán)。
3、for語句的循環(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語句的循環(huán)控制變量的取值采用“前閉后開區(qū)間”寫法。
for (i = 1; i < 10; i++)
這種寫法就是“左閉右開”區(qū)間;for (i = 1; i <= 9; i++)
這樣的語句跟左閉右開的寫法是一樣的意思,但是不建議這么寫。左閉右開的寫法可以使得程序的可讀性更高。
4、for循環(huán)的變種
用兩個(gè)變量來控制循環(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為假,這里這條語句它就不是判斷條件了,所以會(huì)循環(huán)0次,打印無結(jié)果。
到此這篇關(guān)于C語言示例講解for循環(huán)的用法的文章就介紹到這了,更多相關(guān)C語言for循環(huán)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
VisualStudio2022提交git代碼的方法實(shí)現(xiàn)
本文主要介紹了VisualStudio2022提交git代碼的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07C++實(shí)現(xiàn)神經(jīng)BP神經(jīng)網(wǎng)絡(luò)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)神經(jīng)BP神經(jīng)網(wǎng)絡(luò),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05詳解C語言中結(jié)構(gòu)體(struct)的用法
這篇文章主要為大家詳細(xì)介紹了C語言中結(jié)構(gòu)體(struct)的用法,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C語言有一定幫助,需要的可以參考一下2022-08-08深入理解C++模板如何實(shí)現(xiàn)多態(tài)思想
這篇文章主要為大家詳細(xì)介紹了C++模板如何實(shí)現(xiàn)多態(tài)的相關(guān)資料,文中的示例代碼講解詳細(xì),對我們深入了解C++有一定的幫助,感興趣的可以了解一下2023-03-03