- 締切済み
多重ループの抜けだし方
sgwjnの回答
- sgwjn
- ベストアンサー率70% (47/67)
普通は素直にgotoでしょうか。 用途が多重ループの脱出のみであれば、使用しても問題ないでしょうしね。 そもそも、gotoを使うなという言葉の真意は、不用意に処理の流れを歪めるジャンプ系の処理を使うなってことでしょう? その癖breakやcontinueなんかは当たり前のように使って、gotoだけ目の敵にするのも不思議といえば不思議です。 breakやcontinueが許容されるのであれば、同様の影響範囲でのみgotoを使用すれば良いだけの話です。
関連するQ&A
- objective-cの多重ループbreak
objective-cの多重forループの内側でbreakすると外のforまで抜けるようです。 では、内側のforだけ抜けて外側のforの中に戻るにはどう書けばいいのでしょうか? あと、この件について、c言語とobjective-cの文法の違いについて教えていただけるとうれしいです。
- ベストアンサー
- C・C++・C#
- 10進ベーシックでループを抜けたい
for文で作った2重ループの中にif文があります。 if文の条件を満たしたらループを抜けるようにしたいのですが、 「goto 行番号」や「EXIT FOR」 を使ってもうまくいきません。 一度に2重ループを抜けたいのですが、どうすればいいでしょうか?
- ベストアンサー
- Visual Basic
- C言語における3重ループの定義についての質問です
多重ループの定義について for文の中にfor文がある場合、多重ループになることはわかったんですが、 3重ループ以上の場合は for文の中にfor文があり、さらにその中にfor文がある時ですか? 例 for( ){ for( ){ for( ){ } } } それとも、for文が重なっている時のfor文の合計数ですか? (例えばfor文の中に別々のfor文が2つある場合) 例 for( ){ for() { } for( ){ } } 上手く説明できないんですが、よろしくお願いします
- 締切済み
- C・C++・C#
- break文でループを一気に抜けるには
break文でループを一気に(2個以上) 抜けたい場合はどのようにすればいいのでしょうか? たとえば下のプログラムで1から2に抜けたい すなわちifとforの2つの中括弧を同時に抜けたい場合には どうやってbreak文を記述すればいいのでしょうか? (goto文は使わないということでお願いします。 int k=0; int i; for (i=1;i<10;i++){ k++; printf("%d",k); if (k == 5){ printf("a"); break;・・・・・・・・・1→ } } printf("finish");・・・・・・・・・2←
- ベストアンサー
- C・C++・C#
- 入れ子ループで、外側のループ変数$_を、内側のループ内から使えるか??
入れ子ループで、外側のループ変数$_を、内側のループ内から使えるか?? ループ変数を指定しない場合、自動的に$_が使われますが、例えば、 BIG: for(0..9) { SML: for(0..9) { expr } } のようなステートメントを書いた場合、SMLループ内でBIGのループ変数$_を参照する手だてはあるのでしょうか? イメージ的には、 $BIG::_ とやれば、出来そうだと思ったのですがダメでした^^; ださいコードでスミマセン m(__)m;;
- ベストアンサー
- Perl
- 無限ループとループ文
プログラミングにおいて while文、for文、foreach文などループ文は種類がありますが 無限ループに繋がってしまう恐れが高い順などは存在しますか? どのループ文もミスなく慎重に 正確な書き方さえしていれば無限ループは起きないと思いますが もしそのような順が存在するのであれば、わからないので教えて頂きたいです。
- ベストアンサー
- JavaScript
- 多重ループから例外で抜け出すやり方について
PHP5.2.4を使用しています。 次のような複数の箇所で多重ループから抜け出すきっかけになる処理(function1()、function2())を散らばせて 記述している場合、自分としてはメソッドから返ってきたフラグを判定してbreak 2;とかするよりは 例外(throw)を使って抜け出す方法がいいのかなぁと思ってるのですが、 そもそも例外というものはこういう風に使ってもいいのでしょうか? それともこのケース($valueが0以下になったら)では別のやり方の方があるのでしょうか? class Class1 { private $value = 100; public function subValue($value) { $this->value -= $value; if ($this->value <= 0) { throw new Exception('valueが0以下になった'); } } public function function1() { $this->subValue(30); } public function function2() { $this->subValue(50); } public function main() { try { for ($i = 0; $i < 3; $i++) { $this->function1(); for ($j = 0; $j < 3; $j++) { $this->function2(); } } } catch (Exception $e) { print $e->getMessage()." [".__FILE__ ."(".__LINE__.")]<br>\n"; } } } $obj = new Class1(); $obj->main();
- ベストアンサー
- PHP
- UWSCでの多重ループ
最近プログラムを組み始めた初心者です。 メインのAというループの中にもう一つBというループを作り、Bの条件が満たされたら又Aのループに戻る というスクリプトを書きたいのですがどのようにすればよいでしょうか? While~Wendでいけると思ってやってみたのですがなかなかうまくいきません。 どなたか手ほどきをよろしくお願いします。 ループA(メインループ)←← ↑ ↑ ループB(サブループ)この中の条件が満たされた時ループAに戻る方法 ループB終わり ループA終わり
- 締切済み
- その他(ソフトウェア)