Re: [問題]跳出迴圈問題,多謝指教:)已回收
※ 引述《pkpkok (等不到人內)》之銘言:
: 標題: [問題]跳出迴圈問題,多謝指教:)
: 時間: Tue Nov 16 14:36:27 2010
:
:
: 在多個迴圈中,如其值目標已達到我想要的
:
: 我想直接跳出迴圈,讓程式終止該如何設計?
:
: EX:
:
: for i=1:35
:
: for j=1:32
:
: for k=1:30
:
: x=a(i)+b(j)+c(k)
:
: end
:
: end
:
: end
:
: (跳出迴圈至此,執行後續語法,想節省後續非必要的處理時間)<---
:
: 我是想當X假設等於100時直接跳出多重迴圈
:
: 因為MATLAB沒有GOTO的功能,想請問這邊我該如何設計使程式直接跳出多重迴圈
:
: 感謝您的回答:)
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 140.135.120.172
: 推 bagaSu:寫成function 使用 return 即可 11/16 15:05
法一:寫成function 條件滿足便return回傳值
舉例:
function x=ptttest;
for i=1:100000
for j=1:32
for k=1:30
x=i+j+k;
if x==1000
return
end
end
end
end
存為m-file後再呼叫即可
x=ptttest
: 推 tblu:break 11/16 15:32
: → pkpkok:break要如何使用才能跳出三個迴圈呢?感謝您的幫忙:) 11/16 15:47
法二:使用break 但break一次只跳出一層迴圈
所以自己寫個旗標
最裡面的判斷式成立後改寫旗標值並跳出
其他外層的迴圈判斷旗標值變動沒 變了就跳出
舉例:
index=0;
for i=1:100000
for j=1:32
for k=1:30
x=i+j+k;
if x==1000
index=1;
break
end
end
if index==1
break
end
end
if index==1
break
end
end
x
兩種結果是一樣的
速度方面直接複製貼上的話是 function快
但存檔完執行的話兩個速度差不多
break還快一點點
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.250.7.46
推
11/18 12:46, , 1F
11/18 12:46, 1F
推
09/15 17:45, , 2F
09/15 17:45, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):