こんにちは。「Javaを復習する初心者」です。
今回は分岐処理を記述するif文を扱いました。Javaプログラムの処理の流れというのは、基本的に上から順番に処理する流れですが、if文を使うことで、処理を分岐することができます。前回はwhile文で繰り返し処理を書いてみました。0から9までの数値をランダムに取り出し、5なら終わるという感じでした。今回は繰り返し処理の箇所で条件分岐して、最後に「当たり」という文字を追加して出力するようにしました。
ソースと実行結果
以下にフローを書きます。
- int型変数numを初期値0で宣言する。
- numが5でない場合、以下の処理を繰り返す。
- numに0から9までのランダムな値を格納する。
- String型変数sを以下の形式で初期化する。
“回数: ” + [繰り返し回数] + “, 値: ” + num - numが5の場合、sにs + ” 当たり”を格納する。
- sをprintlnで出力する。
ソース
package test;
import java.util.Random;
public class HelloWhileIf {
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 += " 当たり";
}
System.out.println(s);
}
}
}
結果
回数: 1, 値: 1
回数: 2, 値: 3
回数: 3, 値: 3
回数: 4, 値: 1
回数: 5, 値: 7
回数: 6, 値: 7
回数: 7, 値: 5 当たり
解説
16から18行目でif文使ってます。if文の構文は以下です。
if文
if (条件) {
処理内容;
・
・
・
}
if文の条件がtrueの場合、括弧の部分が実行されます。ここで「true」と書きましたが、Javaでは真偽値を予約語のtrue/falseで表すため、このような言い方にしました。では条件の箇所を0と書くとどうなるかというと、「型の不一致: int から boolean には変換できません」というエラーになります。
サンプルでは比較演算子「==」を使いました。比較演算子や論理演算子を使った文はtrue/falseのどちらかの値になります。boolean型変数を使って次のようなif文の使い方も可能です。
ソース
package test;
public class HelloBoolean {
public static void main(String[] args) {
boolean flag = 1 == 1;
if (flag) {
System.out.println("flagの値: " + flag);
}
}
}
結果
flagの値: true
「1 == 1」はtrueですので、変数flagの値はtrueです。if文の条件がtrueになり、括弧の内容が実行されます。