[問題] 請問在function裡面如何跳出迴圈?

看板C_and_CPP作者 (123)時間13年前 (2010/08/17 23:18), 編輯推噓2(207)
留言9則, 8人參與, 最新討論串1/1
小弟最近寫一個程式,大概長得像下面的簡圖 XD void abc(xxx) { for(xxx) { abcd(xxx); for(xxx) { abcde(xxx); } abcdef(xxx); } } int main { x x x x abc(xxx); ● cout << xxxxx ; return 0; } 要在main裡面call一個叫做abc的function 這個function裡面有兩個for loop,而且也有call其它function來用 第一個for loop(紅色)不知道終點在哪裡,第二個for loop(黃色)知道終點在哪裡 每次紅色for loop跑完一個iteration後會在function abcdef 計算一個數值 當此數值滿足某個條件時,則要cout一些結果出來,然後結束程式 我的想法是讓程式跳到綠球那邊,然後寫cout,然後到return → 程式結束 問題是我現在不知道要怎樣跳到綠球的那個位置 我只知道可以用goto,但這個指令bug好像很多,而且我試了之後會有問題... 請問這該怎麼做呢? 感恩呀!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.3.39 ※ 編輯: Hyozero 來自: 123.195.3.39 (08/17 23:19)

08/17 23:20, , 1F
goto不能跨函式 請查詢setjump, longjump 這兩個函式
08/17 23:20, 1F

08/17 23:22, , 2F
不過想辦法改變程式邏輯與流程可能比較好....
08/17 23:22, 2F

08/17 23:26, , 3F
會有需要跳出深層loop通常是判斷點有問題吧
08/17 23:26, 3F

08/17 23:31, , 4F
讓 abcdef() return 一個bool回來 紅loop判斷要不要跳出
08/17 23:31, 4F

08/17 23:34, , 5F
滿足條件就break,或是像樓上講的
08/17 23:34, 5F

08/17 23:38, , 6F
可以請樓上和樓樓上大大舉個例子嗎? 小弟還是程式新手
08/17 23:38, 6F

08/17 23:42, , 7F
你的紅色 for 裡面也需要 return;
08/17 23:42, 7F

08/18 04:33, , 8F
無言...先改善程式結構化的概念比較好。
08/18 04:33, 8F

08/19 18:10, , 9F
break; break; 就跳出兩層loop,問題看你怎麼安排放置.
08/19 18:10, 9F
文章代碼(AID): #1CQgX9iC (C_and_CPP)