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ブロックの中のコードとは見なされません)。まずは、ブロックを表す{…}は省略しないのを基本としてください。






