深入c語言continue和break的區(qū)別詳解
自認(rèn)為C語言還算入門的人,看來還是高估自己了.沒想到在這個地方還有這么有趣的東西.有些話看來要仔細(xì)深究才能真正入門啊....
================================================================================
#include <stdio.h>
int main(void)
{
int flag=0;
for(int j=0; j <2; j++) {
if(j==0) {
switch(j) {
case 0:
continue;
}
flag=1;
}
}
printf( " flag:%d\n ",flag);
}
輸出:
flag:0
如果代碼為:
case 0: break;
輸出:
flag:1
======================================================================
再看:
#include <stdio.h>
void main()
{
int flag = 0;
int j = 0 ;
for(j=0; j <2; j++) {
if(j==0) {
if(j==0) {
continue;
}
flag=1;
}
}
printf( " flag:%d\n ",flag);
}
輸出:
flag:0
如果代碼為:
break;
輸出:
flag:0
==========================================
在C語言書中,對于continue和break是這么描述的:
break語句可以從最內(nèi)層的循環(huán)或者switch語句中退出.
continue語句只能出現(xiàn)在for, while, do循環(huán)中
=========================================
結(jié)論:continue只對直接包含它的循環(huán)體有效(也就是for,while, 而switch{}中的不算循環(huán)體);而break有效的是直接包含它的for,while,switch塊。
比如在不包含switch的代碼中出現(xiàn)break或者continue,那么break跳出循環(huán)體,而continue跳出本次循環(huán).
而對于在循環(huán)中嵌套switch語句的代碼中,break僅跳出最內(nèi)層的塊,這個塊若是switch,就僅跳出switch.
而continue即使出現(xiàn)在switch塊中,因?yàn)閏ontinue的作用范圍僅針對 for while 之類的循環(huán)語句,故不起作用,依舊跳出本次循環(huán).
不注意的話也會認(rèn)為同樣是跳出switch語句塊了.
相關(guān)文章
關(guān)于C++中數(shù)據(jù)16進(jìn)制輸出的方法
本文主要介紹了關(guān)于C++中數(shù)據(jù)16進(jìn)制輸出的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
深入學(xué)習(xí)C語言中memset()函數(shù)的用法
這篇文章主要介紹了深入學(xué)習(xí)C語言中memset()函數(shù)的用法,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-08-08
C語言?八大排序算法的過程圖解及實(shí)現(xiàn)代碼

