◆条件分岐
前回は「繰り返し」について説明しました。
今回は「条件分岐」について説明したいと思います。
「条件分岐」とは指定した条件に応じて、処理の内容を変えて実行する構文です。
「条件分岐」は「if文」と「switch文」の2種類になります。
これからその2つについて説明します。
1.if文
if文は
if (条件式) {
処理1; (trueの場合)
} else {
処理2;(falseの場合)
}
上記のような構成となっています。
記述されたプログラムを全て実行するわけではなく、boolean型の条件に応じて実行する処理が変わっています。
条件式が「true」ならば処理1を実行して、処理2は実行しません。
条件式が「false」ならば処理2を実行して、処理1は実行しません。
それでは1つ具体例を挙げてみましょう。
public class Sample_if { public static void main(String[] args) { int n = 10; if (n < 50) { System.out.print("nの値は50未満です"); } else { System.out.print("nの値は50以上です"); } } }
この場合「n」は10なので、「nの値は50未満です」と表示されます。
しかしこれでは分岐が2通りしかありません。
では複数の分岐がある場合はどうするのでしょうか?
分岐を複数作りたい場合は「else if」を用います。
if (条件式1) {
処理1;
} else if (条件式2) {
処理2;
} else {
処理3;
}
このように「else if」を使って複数の分岐を作ります。
先ほどと同様に具体例を挙げてみます。
public class Sample_elseif { public static void main(String[] args) { int n = 10; if (n == 0) { System.out.print("nは0です。"); } else if (n > 0) { System.out.print("nは正の整数です。"); } else { System.out.print("nは負の整数です。"); } } }
このプログラムを実行すると「nは正の整数です。」と表示されます。
このif文の中は、
①「n」が0の場合(n == 0)
②「n」が0より大きい場合(n > 0)
③それ以外の場合
以上の3パターンに分岐があります。
3行目で「n」の値は10となっているので、②に当てはまります。
すると7行目が実行され、「nは正の整数です。」と表示されるという流れになっています。
2.switch文
もうひとつの条件分岐が「switch文」です。
switch文の構成は以下の様になっています。
switch (整数式) {
case 定数式1:(セミコロンではなくコロン)
処理1;
break;
case 定数式2:
処理2;
break;
default:
処理3;
}
for文は条件をboolean型で判断していましたが、switch文の条件はchar/byte/short/int/enum/Stringの6種類が使用できます。
その条件の値と、「case」の直後にある定数式の値を比べ、一致する場所の処理を実行します。
一致するものがない場合には「default」の処理を実行します。
しかしswitch文はこのままだと、上手く処理できません。
そこで各分岐の処理の後に「break;」を付け、ループを抜けます。
defaultの処理は一番最後にあるので「break;」はいりません。
もし「break;」がないと実行した処理以下に記述された処理も実行されてしまうので注意して下さい。
では例をみてみましょう。
public class Sample_switch { public static void main(String[] args) { int n = 2; switch (n) { case 1: System.out.print("nの値は1です。"); break; case 2: System.out.print("nの値は2です。"); break; default: System.out.print("nの値は1でも2でもありません。"); } } }
このプログラムを実行すると「nの値は2です。」と表示されます。
まず「n」の値が「2」なので、case 2が実行されます。
そして文字列を表示した後、break;でswitch文を抜けます。
もし「break;」がないと、下のdefaultも実行してしまいます。
試しに「break;」をとって、ぜひご自分で確かめてみて下さい!