breaking an if loop
조회 수: 76 (최근 30일)
이전 댓글 표시
In the following script, why doesn't the break in line 24 get executed?
clf
xx = 1:.01:2;
vec = 1:.01:2;
for i=1:101;
yy(i)= -1*vec(i)+2 ;
end;
plot(xx,yy,'r')
plot(xx,yy);
axis ([0 10 0 2]);
hold on
N = 100;
xo = 1.8; yo = 1.2;
dx = .01; dy = .01;
for i = 1:N
x(i) = xo - i*dx;
y(i) = yo - i*dy;
plot(x(i),y(i))
for j = 1:N
if y(i) < yy(j)&& x(i) < xx(j)
plot (x(i),y(i),'o')
break
end
end
end
댓글 수: 0
채택된 답변
Andrei Bobrov
2013년 10월 2일
t = false;
for i = 1:N
if t, break; end
x(i) = xo - i*dx;
y(i) = yo - i*dy;
plot(x(i),y(i))
for j = 1:N
if y(i) < yy(j)&& x(i) < xx(j)
t = true;
plot (x(i),y(i),'o')
break
end
end
end
댓글 수: 0
추가 답변 (2개)
Roger Stafford
2013년 10월 2일
Are you sure the 'break' is not executed? You have placed it within the inner for-loop, so when it performs the break it continues to execute the outer loop. Read Mathworks' documentation: "In nested loops, break exits only from the loop in which it occurs. Control passes to the statement that follows the end of that loop." In your case whenever you have an (i,j) pair for which i+j>81 and i-j>19 both become true, then the break should occur with no further j values for that i value. However it goes right on with the next value of i in the outer loop and this break should therefore occur repeatedly for a number of different values of i, once on each i.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Formatting and Annotation에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!