深入c語言continue和break的區別詳解

來源:互聯網
上載者:User

自認為C語言還算入門的人,看來還是高估自己了.沒想到在這個地方還有這麼有趣的東西.有些話看來要仔細深究才能真正入門啊....

================================================================================

複製代碼 代碼如下:#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語句可以從最內層的迴圈或者switch語句中退出.

continue語句只能出現在for, while, do迴圈中

=========================================

結論:continue只對直接包含它的迴圈體有效(也就是for,while, 而switch{}中的不算迴圈體);而break有效是直接包含它的for,while,switch塊。

比如在不包含switch的代碼中出現break或者continue,那麼break跳出迴圈體,而continue跳出本次迴圈.

而對於在迴圈中嵌套switch語句的代碼中,break僅跳出最內層的塊,這個塊若是switch,就僅跳出switch.

而continue即使出現在switch塊中,因為continue的作用範圍僅針對 for while 之類的迴圈語句,故不起作用,依舊跳出本次迴圈.

不注意的話也會認為同樣是跳出switch語句塊了.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.