running two while loops
    5 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    xRobot
 am 24 Nov. 2019
  
    
    
    
    
    Beantwortet: Walter Roberson
      
      
 am 25 Nov. 2019
            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.
1 Kommentar
  Rik
      
      
 am 24 Nov. 2019
				Since you rely on user input, it doesn't look to me like this is a parallel process. It looks like you need either two while loops with their own check, or a single loop with two checks in its condition.
Akzeptierte Antwort
  Walter Roberson
      
      
 am 25 Nov. 2019
        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
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


