MATLAB: Running two while loops

while loop

Hello,
I am attempting to run two while loops similar to below with check being a value zero or 1:
input(enter guess)
check = check(guess)
while check == 0
do things
input(enter guess)
check = check(guess)
while check == 1
do things
input(enter guess)
check = check(guess)
The problem I am having is that once I am is that once I enter the second loop and check becomes 0 I cannot go back to the above loop I am stuck in the one where check == 1.
Is this an example of a case where parallel while loop tools would be needed like the parallel toolbox.

Best Answer

As a general form you can use something like
need_to_repeat_outer_loop = true;
while need_to_repeat_outer_loop
%some code








need_to_repeat_inner_loop = true;
while need_to_repeat_inner_loop
%some code
if some inner condition
need_to_repeat_inner_loop = false;
end
end
%some code
if some outer condition
need_to_repeat_outer_loop = false;
end
end
Hower, in practice most of the time you would instead write
while true
%some code
while true
%some code
if some inner condition
break; %out of inner loop

end
end
%some code
if some outer condition
break;
end
end
Sometimes you are inside the inner loop and need to signal that the outer loop is to be stopped. For that you can use
while true
%some code
while true
stop_outer = false;
%some code
if some inner condition
stop_outer = true;
break; %out of inner loop
end
end
if stop_outer;
break;
end
%some code
end