演習課題「順位に合わせてメッセージを表示する」
右のコードは、実行するたびに、1から10までの数値をランダムに生成して、順位として表示します。そして、flag変数に、3位以内かどうかの評価結果を代入します。
ここにif文を追加して、flag変数がtrueの時に「入賞おめでとう」と表示するようにしてください。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
あなたの順位は(1..3)位です
入賞おめでとう
-----
あなたの順位は(4..10)位です
#09:【補講】条件の評価結果を理解しよう
ここでは、条件の評価結果について学習します。条件には、「成立したとき」と「成立しなかったとき」という状態がありますが、Javaでは、このような状態を表すため、論理型というデータ型を持っています。
Javaでは、「条件が成立したとき」と「成立しなかったとき」といった状態を専用のデータ型で表します。条件が成立したときの状態を「真」または「true」(トゥルー)と呼びます。そして、条件が成立しなかったときの状態を「偽」または「false」(フォールス)と呼びます。
- 条件が成立したとき:真、true
- 条件が成立しなかったとき:偽、false
if文の条件は、論理演算です。たとえば、次のようなな条件は、number変数の値によって、条件が成立したり、成立しなかったりします。
number変数が「1」の場合
- number == 1 true
- number <= 10 true
- number >= 10 false
- number < 10 true
- number > 10 false
number変数が「10」の場合
- number == 1 false
- number <= 10 true
- number >= 10 true
- number < 10 false
- number > 10 false
論理演算は、評価の結果として、trueかfalseを返します。
ANDやORを使って組み合わせた条件も論理演算です。
ANDでは、number1変数とnumber2変数の値が、次のようになっていた場合、評価結果は次のようになります。
number1 | number2 | number1 == 1 && number2 == 1 |
---|---|---|
0 | 0 | false |
0 | 1 | false |
1 | 0 | false |
1 | 1 | true |
ORでは、number1変数とnumber2変数の値が、次のようになっていた場合、評価結果は次のようになります。
number1 | number2 | number1 == 1 || number2 == 1 |
---|---|---|
0 | 0 | false |
0 | 1 | true |
1 | 0 | true |
1 | 1 | true |
true(トゥルー)かfalse(フォールス)という条件の評価結果もデータなので、変数に代入することができます。
2行目の式は、「number == 1」の評価結果を、flag変数に代入しています。// 条件の評価結果
public class Main {
public static void main(String[] args) {
int number = 1;
boolean flag = number == 1;
if (flag) {
System.out.println("スキ!"); //条件が成立したときの処理
} else {
System.out.println("キライ"); //条件が成立しなかったときの処理
}
System.out.println(flag);
}
}
- 真理値 - Wikipedia
https://ja.wikipedia.org/wiki/%E7%9C%9F%E7%90%86%E5%80%A4
- 【超基本】Javaの論理演算子の使い方
https://eng-entrance.com/java-cal-logical
- 論理演算子 - 演算子 - Java入門
https://www.javadrive.jp/start/ope/index12.html
- Javaの道:演算子(3.条件演算子)
http://www.javaroad.jp/java_operator3.htm