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 裡的規定,去掉一個 就好啦,要不是編譯器會報錯 篤俠 這個註釋為什麼是錯誤的?為什麼不能理解成註釋為 programming 因為 和 不需要一一對應,無論前面有多少個 只要遇到一個 則這個註釋就結束了,後面的 就不再視為註釋的結束標誌了。 道理樓上的說... 茆傅香佘汝 你這程式是不是求單詞數量呀.修改如下 include include include void main printf 字數為 d n c 翟芙聊釵 include stdio.h include intmain printf 字數為 d n c 招金生蹉亥 linking.link f... 錯的地方很多,首先是這一句 return n 10 這一句會發生陣列越界的錯誤.因為最後一個元素的下標為9 你修改後你的排序函式返回值為int型,但在你的函式體內卻沒有返回一個值.你要不返回值的話,就把函式定義改為返回void,要是你想返回首元素的地址,就把返回型別改為int 還有一點你的排序演算法...C語言中註釋為什麼是錯的?這個不是可以理解成給做註釋嗎
為什麼這個c語言程式總是執行是錯誤
這個c 語句為什麼錯的?怎麼改