私はForとWhileステートメントに名前を付けることができたことを知りました。特定のループを中断したり続行したい場合に便利です。
しかし、なぜ私はIfに名前を付けるべきですか?これは、これはあなたが任意のステートメントのブロックの前にラベルを使用することができます問題なぜ私はIfステートメントに名前を付けるべきですか?
答えて
名前の付いたコードブロックをお持ちの場合は、それを終了するために使用することができます。これは、名前ブロックのために見つけた使用方法です。
name: if(true) { // do something if(/* condition */) { break name; } // do more }
場合、それはまたせずに動作します:いくつかのロジック上のガード条件のセット、およびに落下されるロジックの別のセットがある場合、これが私の仕事で起動します
name: { // do something if(/* condition */) { break name; } // do more }
ガードの結果にかかわらず。
別の構造を読み取って変更することがより困難である更なる例:
block: if(/* guard */) { // prep work if(/* guard */) { break block; } // prep work if(/* guard */) { break block; } // real work }
通常、私は裸のブロックを使用していない場合けれども。
+1以前は見たことがありません。しかし、あなたが他のブロックで過去に壊したいコードを入れないと同じことが達成されますか? –
しかし、フォーム(ガード、計算、ガード、計算、ガード、ワーク)はこのように読みやすくなります。 –
私は個人的にはまだif-else構造を好むと思っていますが、今は新しい何かを学んでいます:-)。 –
なしでコンパイル
name: if(true){
//do something
}
無用になります。これはおそらくループで最も一般的に使用されますが、他の場所では完全に有効です。
+1、あなたの答えに追加するには、このリンクにいくつかの例があります:http://download.oracle.com/javase/tutorial/java/nutsandbolts/branch.html –
mmm okしかし、これは私の質問に答えません: Dには、ifという名前を付ける実用的な用途はありますか? – Oneiros
Sarah Happyの答えは実際にはループよりもコードブロックを壊すためにbreak
を使うことができるということを示しているので、私の答えは正しいと思います。
。これは、他の場所で有効ですが、私はgoto
が予約語ですが、あなたがは、Javaがないサポート後藤を使用
goto name;
ないことはできませんが、それはラベルの形でそれをサポートすることを追加したいですbreak
およびcontinue
と結合されたループ。
あなたのような、後藤が含まれるように、あなたのコードサンプルを拡大した場合:
name: if(true){
//do something
}
goto name;
あなたのラベルでcontinue
を使用しようとした場合は、代わりに両方illegal start of expression
とnot a statement
を言って、エラーを取得したいですしかし、ループせずに、同じよう:
name: if(true){
//do something
}
continue name;
あなたはundefined label: name
コンパイラに関して言えば、ループのないラベルは大丈夫ですが、ループなしでは無駄になります。
ループを壊すように、戻るかif文の方にジャンプしたいと思うかもしれません。これについて考え始めるときはいつでも、代わりに新しいメソッドを作成してみてください。
- 1. automakeがオブジェクトファイルの前にパッケージ名を付けるのはなぜですか?
- 2. ラムダに名前を付けることはできますか?
- 3. なぜdatetimepickerはnumberではなくmonthの名前を付けますか?
- 4. なぜWebでファイル名の名前が付けられるのですか
- 5. バッキングビーンズにクラスよりも別の名前を付けるべきですか?
- 6. すべての図形に名前を付けるには
- 7. アクションパラメータにアクションと同じ名前を付けることができないのはなぜですか?
- 8. 条件に名前をつけてifブロックで使用する場合の名前付け
- 9. CIのラジオボタン付きステートメントIf
- 10. Railsは私のルートの一部の名前を付けているのはなぜですか?
- 11. MatchResultに名前付きグループのメソッドがないのはなぜですか?
- 12. ダウンロードファイルに名前を付けるには
- 13. テストに名前を付けるには?
- 14. スレッドに名前を付けるには?
- 15. タイプの後に名前を付ける変数の名前は何ですか?
- 16. if/elseステートメントが機能しないのはなぜですか?
- 17. 関数に名前を付けると "アニメート"できないのですか?
- 18. 関数式に名前を付けることができない場合は、関数式の名前を付けるポイントは何ですか?
- 19. 変数に名前を付けるときに従うべきベストプラクティスは何ですか?
- 20. テンソルに名前を付けますか?
- 21. $ .getJSON SyntaxError:missing;前のステートメント、なぜですか?
- 22. URLでファイルに名前を付ける
- 23. kafkaトピックに名前を付けるベストプラクティスは何ですか?
- 24. 名前付き範囲が機能しないのはなぜですか?
- 25. 名前付き仮想ホストが動作しないのはなぜですか?
- 26. ifステートメント内の画像の名前を質問する
- 27. ifステートメントを続ける
- 28. Pythonで 'in'変数に名前を付けることはできますか?
- 29. C#で配列インデックスに名前を付けることはできますか?
- 30. Visual Studioデバッガでスレッドに名前を付けることはできますか?
お願いします!このパターンは使わないでください!このような後藤は悪いです! – Tazzy531