前言
?? ??hello! 各位寶子們大家好啊,又是新的一天開(kāi)始了,今天給大家?guī)?lái)的循環(huán)語(yǔ)句的全面講解!
?? ??歷時(shí)一天終于給肝出來(lái)了,本文詳細(xì)講解了while,do while循環(huán)語(yǔ)句保證你看完必有收獲!
?? ??本期文章收錄在《C語(yǔ)言初階篇》 ,大家有興趣可以看看吶!
???? 歡迎鐵汁們 ?? 點(diǎn)贊 ?? 收藏 ?留言 ??!
?? 循環(huán)語(yǔ)句的介紹
???? 在學(xué)循環(huán)語(yǔ)句我們首先搞明白什么是循環(huán)語(yǔ)句。循環(huán)語(yǔ)句是用于重復(fù)執(zhí)行某條語(yǔ)句(循環(huán)體)的語(yǔ)句,它包含三個(gè)部分,分別是:
- 初始化部分
- 判斷部分
- 調(diào)整循環(huán)部分
而C語(yǔ)言提供了3中循環(huán)語(yǔ)句,分別為while語(yǔ)句,do while語(yǔ)句和for語(yǔ)句。
??問(wèn)題引入:
???? 舉個(gè)例子,在我們學(xué)習(xí)生活中就和循環(huán)息息相關(guān)。比如是我們考取證書(shū)前提肯定是先學(xué)習(xí)知識(shí),然后再去考試,學(xué)好了就考過(guò)了。不然就要繼續(xù)學(xué)習(xí)然后參加考試!
?? while 語(yǔ)句的介紹
????前一篇文章我們已經(jīng)講解了分支語(yǔ)句if語(yǔ)句。當(dāng)條件滿(mǎn)足的情況下,if語(yǔ)句后的語(yǔ)句執(zhí)行,否則不執(zhí)行。
- 但是這個(gè)語(yǔ)句只會(huì)執(zhí)行一次。
- 而我們生活中很多事情是:同一件事情我們需要完成很多次。
- 所以C語(yǔ)言中給我們引入了:
while
for
do while
語(yǔ)句,可以實(shí)現(xiàn)循環(huán)。
?? 注:前一篇分支語(yǔ)句在這里《if語(yǔ)句詳解》 《switch語(yǔ)句詳解》
?? while 語(yǔ)法結(jié)構(gòu):
while(表達(dá)式)
循環(huán)語(yǔ)句;
???? 大家看是不是和
if
非常像,只要表達(dá)式成立就執(zhí)行語(yǔ)句。只不過(guò)whlie
中語(yǔ)句執(zhí)行完了之后還要重新進(jìn)行判斷,然后繼續(xù)執(zhí)行語(yǔ)句。直到表達(dá)式不成立才取消重復(fù)執(zhí)行!
我們來(lái)演示一下while的用法大家就明白了!比如說(shuō):
- 在屏幕上打印1-10的數(shù)字該怎么辦呢?。
?? 代碼演示:
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
printf("%d ", i);
i = i+1;
}
return 0;
}
?? 代碼解讀:
我們前面講了循環(huán)它包含三個(gè)部分: 初始化部分 判斷部分 調(diào)整循環(huán)部分
- int i = 1; ?在這里是 初始化部分
- i<=10??? 在這里是 判斷部分
- i = i+1; ??在這里是 調(diào)整循環(huán)部分
???? 我們先給 i
符初值然后,就進(jìn)入 while
里面進(jìn)行判斷判斷成立者,執(zhí)行語(yǔ)句。直到判斷不成立就退出 while
循環(huán)。
而想在中途退出該怎么辦呢?這時(shí)就要用到我們的break語(yǔ)句了。
?? while中的break
?? break代碼實(shí)例:
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
break;
printf("%d ", i);
i = i+1;
}
return 0;
}
?? 同樣的代碼我們加上if語(yǔ)句,讓他滿(mǎn)足條件時(shí)執(zhí)行break看下效果。
?? 代碼結(jié)果:
?? 這里我們可以看到break的作用是:
- ?? 其實(shí)在循環(huán)中只要遇到break,就停止后期的所有的循環(huán),直接終止循環(huán)。
- ?? 所以: while中的break是用于永久終止循環(huán)的。
?? while中的continue
?? continue在while循環(huán)中的作用是:
- ?? continue是用于終止本次循環(huán)的。
- ?? 也就是本次循環(huán)中continue后邊的代碼不會(huì)再執(zhí)行,
- ?? 而是直接跳轉(zhuǎn)到while語(yǔ)句的判斷部分。進(jìn)行下一次循環(huán)的入口判斷
??說(shuō)明:
continue
和break
語(yǔ)句一樣都是結(jié)束語(yǔ)句但是;
- break是直接結(jié)束循環(huán)。
- 而continue是跳過(guò)本次循環(huán)。
?? 注:但是在while里面使用要注意,一不小心就會(huì)造成死循環(huán)!我們來(lái)看下面代碼:
?? continue 代碼實(shí)例:
#include <stdio.h>
int main()
{
int i = 1;
while(i<=10)
{
if(i == 5)
continue;
printf("%d ", i);
i = i+1;
}
return 0;
}
?? 同樣的代碼break換成continue看看什么效果。
?? 代碼結(jié)果:
而這里和我們想象的不大一樣,continue的作用不是說(shuō):
- 是跳過(guò)本次循環(huán)嘛?并不會(huì)結(jié)束循環(huán)!
- 那么應(yīng)該輸出的是:1 2 3 4 6 7 8 9 嘛?
- 為什么會(huì)輸出1 2 3 4 然后一直等待循環(huán)呢?
?? 我們仔細(xì)看會(huì)發(fā)現(xiàn)原來(lái)continue結(jié)束的時(shí)候下面的
- i = i+1; 未執(zhí)行導(dǎo)致循環(huán)的調(diào)整循環(huán)部分
- 并未發(fā)生改變所以 i 一直等于4
- 導(dǎo)致造成死循環(huán)。
- 所以在while里面使用continue的時(shí)候一定要注意
? 那么就會(huì)有人說(shuō),把i+1放到continue的前面不就好了
?? 代碼演示:
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
i = i + 1;
if (i == 5)
continue;
printf("%d ", i);
}
return 0;
}
?? 代碼結(jié)果:
???? 這里我們會(huì)發(fā)現(xiàn)死循環(huán)的問(wèn)題解決了。但是新的問(wèn)題又來(lái)了這里把
+1
放到前面打印,所以1就打印不出來(lái)了。還是沒(méi)有達(dá)到我們預(yù)期的效果!
- ?? 所以我們就想,像while這樣的語(yǔ)句!
- ?? 初始化部分 判斷部分 調(diào)整循環(huán)部分
- ?? 三個(gè)不都分別在不同的地方所以導(dǎo)致出錯(cuò)!
- ?? 那么有沒(méi)有三個(gè)部分都寫(xiě)在一起的?
- 這樣就不容易出錯(cuò)了!所以我們又有了for循環(huán)語(yǔ)句完美的解決了這個(gè)問(wèn)題!
?? do while 語(yǔ)句的介紹
?? while 語(yǔ)法結(jié)構(gòu):
do
循環(huán)語(yǔ)句;
while(表達(dá)式);
?? do語(yǔ)句的特點(diǎn)
?? 循環(huán)至少執(zhí)行一次,使用的場(chǎng)景有限,所以不是經(jīng)常使用。
- 所以do while是先執(zhí)行循環(huán)體然后再進(jìn)行判斷!
?? 代碼演示:
#include <stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i=i+1;
}while(i<=10);
return 0;
}
?? 代碼結(jié)果:
?? do while循環(huán)中的break
?? 其實(shí)do while中的break語(yǔ)句和while中作用是一模一樣的!
- 當(dāng)滿(mǎn)足條件執(zhí)行break語(yǔ)句時(shí),就會(huì)直接退出循環(huán)!
?? 代碼演示:
#include <stdio.h>
int main()
{
int i = 1;
do
{
if(5 == i)
break;
printf("%d ", i);
i=i+1;
}while(i<=10);
return 0;
}
?? 代碼結(jié)果:
?? do while循環(huán)中的continue
?? 而do while中的continue語(yǔ)句和while中作用是一樣嘛?
- 我們來(lái)下面代碼看一下!
?? 代碼演示:
#include <stdio.h>
int main()
{
int i = 1;
do
{
if(5 == i)
continue;
printf("%d ", i);
i=i+1;
}while(i<=10);
return 0;
}
?? 代碼結(jié)果:
?? 而這里就發(fā)生了和while一樣的錯(cuò)誤,continue結(jié)束之后
- ?? 循環(huán)調(diào)整部分i=i+1;并沒(méi)有繼續(xù)+1,導(dǎo)致發(fā)生了死循環(huán)!
- ?? 那么就沒(méi)有比
while
和do while
循環(huán)更好一點(diǎn)的語(yǔ)法出現(xiàn)了嘛?- ?? 當(dāng)然有他就是
for
循環(huán),一個(gè)比while
更加安全的循環(huán)!
?? 注:由于本篇幅限制所以下一章在給大家講解for循環(huán)啦!
??本期文章收錄在《C語(yǔ)言初階篇》,后續(xù)的for循環(huán)介紹也在里面呢!大家有興趣可以看看嘞!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-553107.html
總結(jié)
? 歸納:
好了以上就是關(guān)于循環(huán)語(yǔ)句 while 和 do while 的用法詳解,和注意事項(xiàng)就全部講解完畢啦!
??循環(huán)的介紹
??while的用法
??while中continue使用的注意事項(xiàng)
??do while的用法
??do while中continue是怎么樣的
?? 把這些完全掌握,大家就可以隨心所欲的使用循環(huán)語(yǔ)句了!
看到這里了還不給博主扣個(gè):
?? 點(diǎn)贊
??收藏
?? 關(guān)注
!
?? ?? ?? ?? ???? ?? ?? ?? ?? ??
拜托拜托這個(gè)真的很重要!
你們的點(diǎn)贊就是博主更新最大的動(dòng)力!
有問(wèn)題可以評(píng)論或者私信呢秒回哦。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-553107.html
到了這里,關(guān)于《C語(yǔ)言初階篇》循環(huán)語(yǔ)句還沒(méi)搞懂?這篇文章帶你輕松學(xué)會(huì)循環(huán)語(yǔ)句!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!