私は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. CIのラジオボタン付きステートメントIf
- 2. なぜdatetimepickerはnumberではなくmonthの名前を付けますか?
- 3. なぜWebでファイル名の名前が付けられるのですか
- 4. バッキングビーンズにクラスよりも別の名前を付けるべきですか?
- 5. アクションパラメータにアクションと同じ名前を付けることができないのはなぜですか?
- 6. Railsは私のルートの一部の名前を付けているのはなぜですか?
- 7. ifステートメントを続ける
- 8. 関数式に名前を付けることができない場合は、関数式の名前を付けるポイントは何ですか?
- 9. 変数に名前を付けるときに従うべきベストプラクティスは何ですか?
- 10. URLでファイルに名前を付ける
- 11. なぜ 'if'ステートメントを再計算しないのですか?
- 12. 名前を付けるガード
- 13. SQL Serverテーブルの列に名前を付けるときは、使用しない名前がありますか?
- 14. Visual Studioデバッガでスレッドに名前を付けることはできますか?
- 15. C#で配列インデックスに名前を付けることはできますか?
- 16. 名前付き仮想ホストが動作しないのはなぜですか?
- 17. 名前付き範囲が機能しないのはなぜですか?
- 18. OR条件付きObjective-C IFステートメント
- 19. 私は誤ってMongoDBのコレクション "stats"に名前を付けて、名前を変更できません
- 20. PFXでの厳密な名前付け
- 21. 名前を付けるクラスと名前空間は同じですか?
- 22. ifステートメントにelseステートメントがないのは悪いですか?
- 23. XBLハンドラに名前を付けることはできますか?
- 24. Omniauth認証ルートに名前を付けることはできますか?
- 25. OpenLayers:マーカーに名前、説明を付けることはできますか?
- 26. 私のモデルに名前を付けるのに役立つ
- 27. サイトがない場合、アンドロイドパッケージに名前を付けるには
- 28. 番号で始まるC#名前空間の名前を付けることはできますか?
- 29. 名前付きパイプに接続できるクライアントは1つだけです
- 30. カプチーノでこのエラーが発生するのはなぜですか?前のステートメント:if(_2f5 === _ 2e4){"
お願いします!このパターンは使わないでください!このような後藤は悪いです! – Tazzy531