![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/417388/image.png)
Problem with break statement
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Anurag Gupta
el 17 de Nov. de 2020
Comentada: Adam Danz
el 18 de Nov. de 2020
I have a code:
for i=1:n
for j=1:n
if 'some condition'
'some logic'
if 'some condition'
break
end
end
end
end
now my question is that if the 2nd if statement is true and it breaks shouldnt it end the 2nd for loop since if statement is under 2nd for loop but whenever I run this if the 2nd if statement is true and it breaks it ends the 1st for loop.
Any guidance is highly appreciated.
0 comentarios
Respuesta aceptada
Adam Danz
el 17 de Nov. de 2020
Editada: Adam Danz
el 17 de Nov. de 2020
> ...shouldn't it end the 2nd for loop since if statement is under 2nd for loop... ?
Yes, it should end the 2nd loop and that's what it's doing. To better understand what's going on, I inserted fprintf commands in each loop so you can see the iteration numbers. The first condition is true when j==2 and the second nested condition is true when i==3 (while j is equal to 2).
clc
n = 4;
for i=1:n
j = NaN;
fprintf('\n i=%d, j=%d',i,j)
for j=1:n
fprintf('\n i=%d, j=%d',i,j)
if j==2
fprintf(' CONDITION 1')
if i==3
fprintf(' & CONDITION 2: breaking')
break
end % end i==2 test
end % end j==2 test
end
end
fprintf('\n')
You can see (below) that the break condition occurs when i==3 and j==2 and on the next iteration, the i-loop interates to i==4 and the j-loop resets.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/417388/image.png)
6 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!