else文
こんにちは。「Javaを復習する初心者」です。今回はif-elise文を扱いました。
タイトルは「else文」ですが、これは単独で使うものではなく、if文と組み合わせて使うものです。if文は「条件を満たすとき」、else文は「それ以外のとき」です。前回のフローで「5のとき当たり」を出力するところに追加したサンプルを作ってみました。
プログラム
以下にフローを書きます。
- int型変数numを初期値0で宣言する。
- numが5でない場合、以下の処理を繰り返す。
- numに0から9までのランダムな値を格納する。
- String型変数sを以下の形式で初期化する。
“回数: ” + [繰り返し回数] + “, 値: ” + num -
- numが5の場合、sにs + ” 当たり”を格納する。
- numがそれ場合、sにs + ” はずれ”を格納する。
- sをprintlnで出力する。
package test; import java.util.Random; public class HelloWhileIfElse { public static void main(String[] args) { Random random = new Random(); int num = 0; int cnt = 0; while (num != 5) { num = random.nextInt(10); // 10未満の乱数 String s = "回数: " + ++cnt + ", 値: " + num; if (num == 5) { s += " 当たり"; } else { s += " はずれ"; } System.out.println(s); } } }
回数: 1, 値: 6 はずれ 回数: 2, 値: 7 はずれ 回数: 3, 値: 6 はずれ 回数: 4, 値: 3 はずれ 回数: 5, 値: 8 はずれ 回数: 6, 値: 9 はずれ 回数: 7, 値: 1 はずれ 回数: 8, 値: 8 はずれ 回数: 9, 値: 4 はずれ 回数: 10, 値: 3 はずれ 回数: 11, 値: 5 当たり
解説
ソースの18から20行目が追加された箇所です。if (条件) { 処理内容;… } else { 処理内容;… }という使いかたをします。「条件」がfalseの場合、elseの方の中括弧で囲まれた処理が実行されます。ところで、この中括弧は処理内容が1行の場合、省略が可能です。ですが、ソースの読み取り易さから省略しない書き方のほうが一般的のようです。また、開発途中で処理内容が増えた場合、最初から括弧を付けておいた場合のほうが修正しやすいと思います。
else文の中括弧の中を空にするとどうなるか。エラーになると思うかもしれませんがそのようなことはなく、普通に処理が続行されます。例えば次のようなコードを書いても問題なく動きます。
package test; public class HelloWhileIfElseEmpty { public static void main(String[] args) { String s = "Hello."; boolean flag = false; if (flag) { s += " 当たり"; } else { } System.out.println(s); } }
Hello.
出力結果からif文の中の処理は行われなかったことが分かります。elseの方の分岐を通過したということです。