Return back to a specific line

117 visualizzazioni (ultimi 30 giorni)
Arnab Pal
Arnab Pal il 18 Apr 2019
Commentato: Adam Danz il 23 Apr 2019
I have more while and for loop, I need to go beginning. ex:
1. while ()
2. for ()
3. if (condition)
4. Go back to starting of the code i.e line 1
5. else
6. code for some action
7. end
8. end
8. for ()
9. some calculation
8. end
9. end
I need like this, Please help. If I use break, it will break that first for loop only and it will go to next for loop, but I don't want that.

Risposte (1)

Adam Danz
Adam Danz il 18 Apr 2019
Modificato: Adam Danz il 23 Apr 2019
Here's a functional example that you can run or step through in debug mode. The flag 'continueForLoop' determines whether the for-loops will continue execution.
c = 0; %counter for while-loop
while c < 5
% Reset flag (when true, for-loop continues)
continueForLoop = true;
for i = 1:5
if rand(1) < 0.5 && continueForLoop
% set flag that will ignore the rest of the for-loop
continueForLoop = false;
elseif continueForLoop
disp('For-loop continues')
end
end
if continueForLoop
for j = 1:3
x = rand(1);
end
end
% increment counter
c = c+1;
end
  2 Commenti
Guillaume
Guillaume il 23 Apr 2019
I would add a break in the first if instead of the ContinueForLoop test. There's no point continuing iterating the first for to just do nothing.
c = 0; %counter for while-loop
while c < 5
% Reset flag (when true, for-loop continues)
continueForLoop = true;
for i = 1:5
if rand(1) < 0.5
% set flag that will ignore the rest of the for-loop
continueForLoop = false;
break; %and bail out of current for loop
elseif continueForLoop
disp('For-loop continues')
end
end
if continueForLoop
for j = 1:3
x = rand(1);
end
end
% increment counter
c = c+1;
end
Adam Danz
Adam Danz il 23 Apr 2019
Ah, good improvement!

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by