if命令
処理を分岐する – if命令- if(condition) {
- statements
- } else if(condition2) {
- statements
- }
- …
- else {
- statements
- }
- condition、condition2…:条件式
- statements:条件に合致した時に実行される命令文
if命令は、与えられた条件の真偽に応じて実行する命令を分岐します。直訳するならば、「もし~ならば…」という構造を表します。たとえば以下は、変数valが10であれば「変数valは10です」というメッセージを表示するサンプルです。
StatIf.java
package com.example.mynavi.control; public class StatIf { public static void main(String[] args) { int val = 10; if (val == 10) { System.out.println("変数valは10です"); } // 結果:変数valは10です } }
「もし~ならば…さもなくば…」を表現したいならば、else句を利用します。
StatIf2.java
package com.example.mynavi.control; public class StatIf2 { public static void main(String[] args) { int val = 11; if (val == 10) { System.out.println("変数valは10です"); } else { System.out.println("変数valは10ではありません"); } // 結果:変数valは10ではありません } }
更に、「もし~ならば…、~ならば…、さもなくば…」のように複数分岐を表したいならば、else if句を利用します。else if句は、必要な数だけ繰り返し書いて構いません。
StatIf3.java
package com.example.mynavi.control; public class StatIf3 { public static void main(String[] args) { int val = 11; if (val == 10) { System.out.println("変数valは10です"); } else if (val == 20) { System.out.println("変数valは20です"); } else { System.out.println("変数valは10でも20でもありません"); } // 結果:変数valは10でも20でもありません } }
ブロックの中のコードが1文である場合には、「{…}」を省略することも可能です。よって、StatIf3.javaは以下のように書いても同じ意味です。
int val = 11; if (val == 10) System.out.println("変数valは10です"); else if (val == 20) System.out.println("変数valは20です"); else System.out.println("変数valは10でも20でもありません");
ただし、カッコを省略してもさほど簡潔になるわけでもありませんし、むしろブロックの範囲が曖昧になるおそれがあります(例えば、あとから行を追加した時に、今度はブロックも追加しなければ、その行はifブロックの中のコードとは見なされません)。まずは、ブロックを表す{…}は省略しないのを基本としてください。