- 相關(guān)推薦
C語(yǔ)言跳出循環(huán)
C語(yǔ)言在程序員中備受青睞,成為最近25年使用最為廣泛的編程語(yǔ)言。那么大家知道C語(yǔ)言跳出循環(huán)是怎么回事呢?下面一起來(lái)看看!
使用while或for循環(huán)時(shí),如果想提前結(jié)束循環(huán)(在不滿足結(jié)束條件的情況下結(jié)束循環(huán)),可以使用break或continue關(guān)鍵字。
break關(guān)鍵字
在《C語(yǔ)言switch語(yǔ)句》一節(jié)中,我們講到了break,用它來(lái)跳出 switch 語(yǔ)句。
當(dāng) break 關(guān)鍵字用于 while、for 循環(huán)時(shí),會(huì)終止循環(huán)而執(zhí)行整個(gè)循環(huán)語(yǔ)句后面的代碼。break 關(guān)鍵字通常和 if 語(yǔ)句一起使用,即滿足條件時(shí)便跳出循環(huán)。
使用 while 循環(huán)計(jì)算1加到100的值:
#includeint main(){ int i=1, sum=0; while(1){ //循環(huán)條件為死循環(huán) sum+=i; i++; if(i>100) break; } printf("%d", sum); return 0;}
運(yùn)行結(jié)果:
5050
while 循環(huán)條件為 1,是一個(gè)死循環(huán)。當(dāng)執(zhí)行到第100次循環(huán)的時(shí)候,計(jì)算完i++;后 i 的值為 101,此時(shí) if 語(yǔ)句的條件 i> 100 成立,執(zhí)行break;語(yǔ)句,結(jié)束循環(huán)。
在多層循環(huán)中,一個(gè) break 語(yǔ)句只向外跳一層。例如,輸出一個(gè)4*4的整數(shù)矩陣:
#includeint main(){ int i=1, j; while(1){ // 外層循環(huán) j=1; while(1){ // 內(nèi)層循環(huán) printf("%-4d", i*j); j++; if(j>4) break; //跳出內(nèi)層循環(huán) } printf(""); i++; if(i>4) break; // 跳出外層循環(huán) } return 0;}
運(yùn)行結(jié)果:
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
當(dāng) j>4 成立時(shí),執(zhí)行break;,跳出內(nèi)層循環(huán);外層循環(huán)依然執(zhí)行,直到 i>4 成立,跳出外層循環(huán)。內(nèi)層循環(huán)共執(zhí)行了4次,外層循環(huán)共執(zhí)行了1次。
continue語(yǔ)句
continue 語(yǔ)句的作用是跳過循環(huán)體中剩余的語(yǔ)句而強(qiáng)制進(jìn)入下一次循環(huán)。continue語(yǔ)句只用在 while、for 循環(huán)中,常與 if 條件語(yǔ)句一起使用,判斷條件是否成立。
來(lái)看一個(gè)例子:
#includeint main(){ char c = 0; while(c!=){ //回車鍵結(jié)束循環(huán) c=get); if(c==4 || c==5){ //按下的是數(shù)字鍵4或5 continue; //跳過當(dāng)次循環(huán),進(jìn)入下次循環(huán) } putc); } return 0;}
運(yùn)行結(jié)果:
0123456789↙
01236789
程序遇到while時(shí),變量c的值為,循環(huán)條件c!=成立,開始第一次循環(huán)。get) 使程序暫停執(zhí)行,等待用戶輸入,直到用戶按下回車鍵才開始讀取字符。
本例我們輸入的是 0123456789,當(dāng)讀取到4或5時(shí),if 的條件c==4||c==5成立,就執(zhí)行 continue 語(yǔ)句,結(jié)束當(dāng)前循環(huán),直接進(jìn)入下一次循環(huán),也就是說(shuō)putc);不會(huì)被執(zhí)行到。而讀取到其他數(shù)字時(shí),if 的條件不成立,continue 語(yǔ)句不會(huì)被執(zhí)行到,putc);就會(huì)輸出讀取到的字符。
break與continue的對(duì)比:break 用來(lái)結(jié)束所有循環(huán),循環(huán)語(yǔ)句不再有執(zhí)行的機(jī)會(huì);continue 用來(lái)結(jié)束本次循環(huán),直接跳到下一次循環(huán),如果循環(huán)條件成立,還會(huì)繼續(xù)循環(huán)。
、賑ontinue(跳出本次循環(huán))
# include
main()
{
int y=10;
for(;y>0;y--)
if(y%3==0)/*整除3的依次為9、6、3*/
{printf("%d",--y);continue;}
/*跳出本次循環(huán),繼續(xù)循環(huán)至結(jié)束,--y為8、5、2*/
}
輸出結(jié)果為--y=8、5、2
~
、 break(跳出整個(gè)循環(huán))
# include
main()
{
int y=10;
for(;y>0;y--)
if(y%3==0)/*整除3的依次為9、6、3*/
{printf("%d",--y);break;}
/*跳出整個(gè)循環(huán),不繼續(xù)循環(huán),--y為8*/
}
輸出結(jié)果為--y=8
程序遇到while時(shí),變量c的值為\0
,循環(huán)條件c!=\n
成立,開始第一次循環(huán)。get) 使程序暫停執(zhí)行,等待用戶輸入,直到用戶按下回車鍵才開始讀取字符。
本例我們輸入的是 0123456789,當(dāng)讀取到4或5時(shí),if 的條件c==4||c==5
成立,就執(zhí)行 continue 語(yǔ)句,結(jié)束當(dāng)前循環(huán),直接進(jìn)入下一次循環(huán),也就是說(shuō)putc);
不會(huì)被執(zhí)行到。而讀取到其他數(shù)字時(shí),if 的條件不成立,continue 語(yǔ)句不會(huì)被執(zhí)行到,putc);
就會(huì)輸出讀取到的字符。
【C語(yǔ)言跳出循環(huán)】相關(guān)文章:
C語(yǔ)言循環(huán)基礎(chǔ)知識(shí)附代碼示例11-11
C語(yǔ)言和C++的區(qū)別精選03-01
C語(yǔ)言和C++的區(qū)別03-09
怎樣學(xué)習(xí)c++c語(yǔ)言編程04-28
java語(yǔ)言和c語(yǔ)言的區(qū)別03-01
c語(yǔ)言、c++語(yǔ)言兩者的區(qū)別和聯(lián)系08-17
C語(yǔ)言函數(shù)的定義03-03
什么是C語(yǔ)言函數(shù)02-28