こんにちは。「Javaを復習する初心者」です。
今回はif-else-if文を扱いました。前回はif文とelse文を復習しました。「条件を満たす場合」、「それ以外の場合」という処理です。今回はその間のような雰囲気の「else if」文を復習します。前回のフローで「5のとき当たり」、「それ以外ははずれ」の箇所の分岐処理を変えて3パターンの分岐なるようにしました。
ソースと実行結果
以下にフローを書きます。
- int型変数numを初期値0で宣言する。
- numが5でない場合、以下の処理を繰り返す。
- numに0から9までのランダムな値を格納する。
- String型変数sを以下の形式で初期化する。
“回数: ” + [繰り返し回数] + “, 値: ” + num -
- numが5の場合、sにs + ” 当たり”を格納する。
- numが5より大きい、sにs + ” 大きい”を格納する。
- numがそれ場合、sにs + ” 小さい”を格納する。
- sをprintlnで出力する。
条件分岐のところは以下のように表にしたほうが分かりやすいかもしれません。
numの条件 | 末尾に追加する文字列 |
---|---|
5 | ” 当たり” |
5より大きい | ” 大きい” |
5より小さい | ” 小さい” |
ソースコード
package test;
import java.util.Random;
public class HelloWhileIfElseIf {
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 if (num > 5) {
s += " 大きい";
} else {
s += " 小さい";
}
System.out.println(s);
}
}
}
結果
回数: 1, 値: 6 大きい
回数: 2, 値: 6 大きい
回数: 3, 値: 6 大きい
回数: 4, 値: 8 大きい
回数: 5, 値: 8 大きい
回数: 6, 値: 7 大きい
回数: 7, 値: 4 小さい
回数: 8, 値: 1 小さい
回数: 9, 値: 2 小さい
回数: 10, 値: 8 大きい
回数: 11, 値: 6 大きい
回数: 12, 値: 9 大きい
回数: 13, 値: 9 大きい
回数: 14, 値: 9 大きい
回数: 15, 値: 4 小さい
回数: 16, 値: 0 小さい
回数: 17, 値: 9 大きい
回数: 18, 値: 5 当たり
解説
if-else-if文の構文は以下です。
if-else-if文の構文
if (条件1) {
処理内容;
・
・
・
} else if (条件2) {
処理内容;
・
・
・
}
上記の構文で、条件1がfalseの場合、条件2が判定されます。その結果がtrueならelse ifの方の中括弧の中の処理が実行されます。また、else ifは次のように続けて書くことができます。
if-else-if文の構文
if (条件1) {
処理内容;
・
・
・
} else if (条件2) {
処理内容;
・
・
・
} else if (条件3) {
処理内容;
・
・
・
}
上記の書き方で、最後を「else」にすれば「どの条件も満たされなかった場合」の処理になります。
数値の比較についてですが、「a < b」の場合、aはbより小さい(bを含まない)です。「a <= b」と書いた場合、aはb以下(bを含む)です。