how i break nested for loop

조회 수: 13 (최근 30일)
m. muner
m. muner 2016년 4월 10일
댓글: m. muner 2016년 4월 11일
hello i have three loops and two conditions and flag and i'm trying to use break statement to break the loop after the second condition true but what i get two variables having same value which is impossible what wrong
temp=0;cov=0;sov=0;
for I=1:30
for J=1:30
for N=1:x
dis=sqrt(((I-test_ary(N,2)).^2)+((J-test_ary(N,1)).^2));
if(dis<=r)
if (temp==0)
cov=cov+1;
temp=1;
else
if(temp==1)
sov=sov+1;
temp=0;
break
end
end
end
end
end
end
  댓글 수: 2
dpb
dpb 2016년 4월 10일
What is the expected result you're looking for? The first break will only terminate the innermost loop (on N) so the outer loops will still run to completion (which, of course, will start the innermost loop over again each pass). And, of course, since you reset temp in the else clause, the cov accumulator may increment again.
A description of the objective you're trying to achieve might help.
m. muner
m. muner 2016년 4월 11일
well i have gird of small squares and circles with radius distributed in the area and I'm measuring the distance between each circle and square if the distance less than r the cov increase if two circles have distance less than r with the same square the sov increase and the loop is braked so sov should be smaller than cov not equal

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

채택된 답변

Image Analyst
Image Analyst 2016년 4월 10일
Set a flag:
finishNow = false; % Call this before the loop to initialize.
Then in the loop:
finishNow = true;
Right before the "ends" for i and j, break if the flag is set:
if finishNow
break
end
end % of i or j loop
You will need that twice - once for the i loop and once for the j loop.

추가 답변 (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