看板 C_and_CPP 關於我們 聯絡資訊
小弟最近寫一個程式,大概長得像下面的簡圖 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)
james732:goto不能跨函式 請查詢setjump, longjump 這兩個函式 08/17 23:20
james732:不過想辦法改變程式邏輯與流程可能比較好.... 08/17 23:22
hilorrk:會有需要跳出深層loop通常是判斷點有問題吧 08/17 23:26
goodword:讓 abcdef() return 一個bool回來 紅loop判斷要不要跳出 08/17 23:31
clarkman:滿足條件就break,或是像樓上講的 08/17 23:34
Hyozero:可以請樓上和樓樓上大大舉個例子嗎? 小弟還是程式新手 08/17 23:38
loveme00835:你的紅色 for 裡面也需要 return; 08/17 23:42
tinlans:無言...先改善程式結構化的概念比較好。 08/18 04:33
tomnelson:break; break; 就跳出兩層loop,問題看你怎麼安排放置. 08/19 18:10