Ask about break function

조회 수: 5 (최근 30일)
C Zeng
C Zeng 2012년 6월 6일
Hi, I am writing code to break out of loop. I have several loops, including nested loops. If I use break in a if command, it will jump out of all loops, or the very nearest loop(say only one loop)?
For example:
for i=1:10
for j=1:10
f(x)=...
if f(x)>10 ...
elseif f(x)<5 break;
....
end
end
end
If f(x)<5 for some i=2 and j=3; then break will jump out of loop, go to i=3, j=1 or i=2 j=4?
Thanks.
  댓글 수: 2
Geoff
Geoff 2012년 6월 10일
In your last comment, I don't understand why you ask if (i,j) might go from (2,3) to (2,4) after a break with j as the inner loop. That would not be breaking at all. If you want that behaviour, use 'continue' to continue immediately from the next iteration. If you want to break out of BOTH loops from the inner loop, you need to set a flag, check it after the inner loop, and break again from there. Or use while-loops
C Zeng
C Zeng 2012년 6월 12일
Thank you, you are right! break make the loop of j ending, and start from a new i and j, right?
continue means do nothing in the loop and go to next loop?

댓글을 달려면 로그인하십시오.

채택된 답변

Thomas
Thomas 2012년 6월 6일
I think only the loop in which the break occurs is broken out of..
try
for ii=1:5
ii
for jj=1:6
jj
if ii==3 && jj==4
disp('broken here')
break;
end
end
end
  댓글 수: 5
C Zeng
C Zeng 2012년 6월 12일
Oh, thanks! I got it.
Tomas
Tomas 2013년 3월 26일
if you wanted to break both fors this should work. adding a flag like geof said.
flag=0;
for ii=1:5
ii
if flag==1
break
end
for jj=1:6
jj
if ii==3 && jj==4
disp('broken here')
flag=1;
break;
end
end
end

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by