Ask about break function
3 次查看(过去 30 天)
显示 更早的评论
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
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
采纳的回答
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 个评论
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 Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!