作者Hyozero (123)
看板C_and_CPP
標題[問題] 請問在function裡面如何跳出迴圈?
時間Tue Aug 17 23:18:30 2010
小弟最近寫一個程式,大概長得像下面的簡圖 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