Exit from several, nested while or for loops with one command
51 ビュー (過去 30 日間)
古いコメントを表示
Hello Is there an easy way to quit nested while loops with a command?
For example:
while condition1 = true
...
while condition2 = true
...
while condition3 = true
...
if condition4 = true
leave all while loops and continue with 'command1';
end
end
end
end
command1;
I know that in nested loops, 'break' exits only from the loop in which it occurs. Control passes to the statement that follows the end of that loop.
1 件のコメント
採用された回答
Jan
2013 年 1 月 14 日
編集済み: Jan
2013 年 1 月 14 日
doRun = true;
while condition1 && doRun
...
while condition2 && doRun
...
while condition3 && doRun
...
if condition4 == true
leave all while loops and continue with 'command1';
doRun = false;
end
end
end
end
Command1;
Alternative:
% Call subfunction:
myLoops
command1;
...
function myLoops
while condition1 == true
...
while condition2 == true
...
while condition3 == true
...
if condition4 == true
return;
end
end
end
end
4 件のコメント
Jan
2013 年 1 月 15 日
編集済み: Jan
2013 年 1 月 15 日
Another rule is, that professionally written software (educated and experienced programmers, bug control in a team work, unit tests, bug tracking, version control, costs > 1$ per line) contains about 1 bug per 1000 lines of code. Fixing a bug in a certain line affects three other lines also, which partially require further fixes afterwards.
Debugging a code seriously demands for a coverage report. A bunch of GOTOs increase the effort to find a valid set of inputs, which is appropriate to run each part of the code. The software for controlling the Tornado battle plane has been debugged to 99% only, while the last 1% has been performed during low-level flights over inhabitted areas in the densly settled middle Europe.
In consequence "GOTO should be used with care" means, that avoiding it is a good programming practice. Or in other words: When you avoid GOTO (and the rest of the axis of evil: EVAL and GLOBAL), you will find another way to implement bugs.
My favorite link about GOTO is:
Searching this forum will be helpful also:
その他の回答 (1 件)
Apoorva Srivastava
2019 年 6 月 14 日
編集済み: Apoorva Srivastava
2019 年 6 月 14 日
If you want to stop the program completely but not close MATLAB, you can just use return. (Note: It can be used even without a function!)
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!