Return back to a specific line

124 Ansichten (letzte 30 Tage)
Arnab Pal
Arnab Pal am 18 Apr. 2019
Kommentiert: Adam Danz am 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.

Antworten (1)

Adam Danz
Adam Danz am 18 Apr. 2019
Bearbeitet: Adam Danz am 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 Kommentare
Guillaume
Guillaume am 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 am 23 Apr. 2019
Ah, good improvement!

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by