這個c語言為什麼break是錯的

時間 2021-06-26 19:12:51

1樓:

for(i=n;i>=1;i--);

這句話後面是有分號的,也就是說break根本就不在迴圈內。

我的c語言有誤,請問為什麼是illegal break?

2樓:風若遠去何人留

illegal break是指在編譯時,發現了非法的break語句。

break有兩種用途:

1、用於迴圈體內,包括for,while,do-while迴圈的迴圈體內,起到退出迴圈的作用。

2、用於switch語句,跟在某個case或者defaut後,起到退出開關語句的作用。

除了在以上兩種情況呼叫外,其它的break語句均會被當做illegal break。

3樓:匿名使用者

不合法的break,在迴圈中使用break才是合法的。。。for(i=2;i

4樓:匿名使用者

break被非法使用。

break只能用在迴圈中,比如for或do迴圈體裡。

但你的程式裡,break沒有在迴圈中。因為你的for迴圈**多寫了一個分號,讓for迴圈什麼事都不幹,在那裡死迴圈,應該把那個分號刪掉:

原**:

for(int i=2;i

{應改為:

for(int i=2;i

{// 刪掉for這一行後面的分號

5樓:龍飛釗仔

不懂c語言 。。。。。。。。。。。

在c語言中,break是跳出當層迴圈,但是若是下面這種情況呢:

6樓:匿名使用者

這個break跳出的是b迴圈,連著寫兩個break是錯誤的,想要跳出a迴圈要在b外寫break,可以這麼做:表示式1下一行加個int flag=0;然後if(條件3){flag=1;break;},然後在b外加個if(flag)break;這樣滿足條件3時就可以連續跳出b、a。

7樓:滄海雄風

不可以你可以在迴圈a 中寫一個檢查變數的

在迴圈b中 break之前 改變變數值

然後迴圈a中用個if檢測這個變數值 改變的話則再次break 跳出迴圈a

int flag=0;

while(條件1)//a

}if(flag)break;

} 有疑問請採納 滿意記得追問哦

8樓:

break跳出的是最近的一個迴圈,即b迴圈想同時跳出a迴圈的話,可以使用goto語句,但是,不推薦方法二:

while(條件1 && 條件4)//a//!!!這裡}}新增一個條件4,並且想break的時候,將條件4設定為假,這樣外迴圈再次迴圈判斷的時候,就不滿足條件而退出迴圈了

9樓:

試試不就知道了。

連著兩個break沒用的。

可以在break前使條件1不滿足,從而跳出a處迴圈。

可以接著在a中檢測條件3跳出a。

goto也能達到目的,不過一般不建議使用。

10樓:

跳出b 迴圈。

若想要從深層迴圈跳出,可以使用goto 語句。 goto語句雖然會導致流程難以理解,而不建議使用,但跳出深層迴圈,也是goto唯一可以認可的作用了。

如果不用goto 就設定一個標誌,比如在最外面設定 int flag =0;

if(條件)達到了

這樣,在b迴圈結束後,跳到a迴圈時,再加上 if( flag==1) break;

11樓:匿名使用者

lz真幽默。。。上面的是對的

c語言break語句出錯的問題

12樓:竹竹風子

break必須在迴圈內使用,從你貼出來的**來看,應該呼叫exit退出(上面的printf裡面標識了)

好吧,俺這個回答是存在一定問題的。沒細看,慚愧 !!^-^!!

13樓:匿名使用者

把while(1)對應的反大括號打到break;下面那個反大括號後面...while(1)

} //while的反大括號打到這裡...

14樓:抹不去那縷光

你直接把break去掉就行啊,效果上是一樣的。要完全退出程式exit

15樓:veket的小號

樓上都對 你的 while 的 的 的 } 位置靠前了 往下.......

16樓:匿名使用者

因為在while的外面了,沒必要break

17樓:我不清楚唉

break 退出的是迴圈。。。break沒在迴圈中

c語言break怎麼報錯了?!

18樓:匿名使用者

for語句後面多了個分號

#include

int main()

printf("'icount' is %d",icount);

}return 0;}

如圖c語言中的break是跳到哪個位置,為什麼

19樓:匿名使用者

//break語句

//在執行過程中,如果因為一些特殊的要求,需要強行退出迴圈時,需要使用break語句。

//使用時,將break寫在迴圈體的任何一個位置,一旦執行到這條語句,

//程式直接跳轉到迴圈語句大括號結束後。

#include

#include

int main()

}//執行break後,會跳到這裡。

if(i>k)

else

return 0;}

20樓:蒼紫幽藍

break跳出迴圈。

跳到if(i > k)的位置。

**加上括號相當於如下,所以break跳出for迴圈for(i=2;i

21樓:匿名使用者

break 跳出當前 迴圈(for, while, do..while, swicth) ,到迴圈外接著執行。

當前程式中的break是跳到for的外面,}的下一語句for

《----這裡來

22樓:

**沒縮排, 沒大括號

break跳出for迴圈, 到達if(i>k)處

23樓:緣兮萌兮

break直接結束for迴圈。

c語言為什麼這個break失靈了??

24樓:風若遠去何人留

**不全,不過這類問題十有**是讀入的值非預期,比如你jisuan函式裡面的輸入回車沒有讀走

檢查一下你實際讀到的d值就知道了

debug或者加列印

25樓:匿名使用者

跟你輸入有關,建議列印你getchar得到的d值看是不是n或n

c語言else 後面用break錯誤

26樓:匿名使用者

break是結束while和for迴圈以及case語句使用的,if else分支不需要break,如果else不處理任何事情,直接使用一個分號作為空語句即可。

C語言中註釋為什麼是錯的?這個不是可以理解成給做註釋嗎

源天十八 很簡單,不能註釋已經註釋的,這是c 裡的規定,去掉一個 就好啦,要不是編譯器會報錯 篤俠 這個註釋為什麼是錯誤的?為什麼不能理解成註釋為 programming 因為 和 不需要一一對應,無論前面有多少個 只要遇到一個 則這個註釋就結束了,後面的 就不再視為註釋的結束標誌了。 道理樓上的說...

為什麼這個c語言程式總是執行是錯誤

茆傅香佘汝 你這程式是不是求單詞數量呀.修改如下 include include include void main printf 字數為 d n c 翟芙聊釵 include stdio.h include intmain printf 字數為 d n c 招金生蹉亥 linking.link f...

這個c 語句為什麼錯的?怎麼改

錯的地方很多,首先是這一句 return n 10 這一句會發生陣列越界的錯誤.因為最後一個元素的下標為9 你修改後你的排序函式返回值為int型,但在你的函式體內卻沒有返回一個值.你要不返回值的話,就把函式定義改為返回void,要是你想返回首元素的地址,就把返回型別改為int 還有一點你的排序演算法...