【Java】条件文の個人的まとめ(基礎)
Javaの勉強していて他の言語でも役立ちそうな条件文について
① if文
- if文は、条件がtrueだった場合に、そのブロック内の文を処理する。
- elseを使うことで、設定した条件以外がtrueとして判定され、そのブロック内の文を処理する。
- else ifを使うことで、複数の条件を設定可能。
sample.java
// numberの値によって、出力される言葉が異なる。
// number == 10 の場合、処理が実行される。
if (number == 10) {
System.out.println("Wayne");
// number == 11 の場合、処理が実行される。
} else if (number == 11) {
System.out.println("Ryan");
// numberが上記以外の場合、処理が実行される。
} else {
System.out.println("other");
}
上記の例文の場合「出力処理」は、if文内で共通である。
したがって、下記の例文のように「出力処理」をまとめたほうが修正・保守しやすい。
sample2.java
// numberの値によって、出力される言葉が異なる。
// 変数nameを定義する。
String name;
if (number == 10) {
name = "Wayne";
} else if (number == 11) {
name = "Ryan";
} else {
name = "other";
}
// numberによってnameに代入された文字列が出力される。
System.out.println(name);
② switch文
- switch文は、caseの値に一致した場合、その文を処理する。
- どれにも一致しなかった場合、defaultの文を処理する。
- defaultは、省略することも可能。
- 処理を終了させるために、「break」を必ず書く。
sample.java
// numberの値によって、出力される言葉が異なる。
// caseの値が10の場合、処理が実行される。
switch (number) {
case 10:
System.out.println("Wayne");
break;
// caseの値が11の場合、処理が実行される。
case 11:
System.out.println("Ryan");
break;
// 値が上記以外の場合、defaultの処理が実行される。
default:
System.out.println("other");
break;
}
下記のように、複数のcaseで同じ処理を行わせることも可能である。
sample2.java
// numberの値によって、出力される言葉が異なる。
// caseの値が1、2の場合、処理が実行される。
switch (number) {
case 1:
case 2:
System.out.println("低評価");
break;
// caseの値が3の場合、処理が実行される。
case 3:
System.out.println("及第点");
break;
// caseの値が4、5の場合、処理が実行される。
case 4:
case 5:
System.out.println("高評価");
break;
// 値が上記以外の場合、defaultの処理が実行される。
default:
System.out.println("評価なし");
break;
}
③ while文
- while文は、条件がfalseになるまでブロック内の文を繰り返し処理する。
- falseになるように条件を記述しないと、ブロック内が永遠にループしてしまうため注意する。
sample.java
// 初期値を設定する。
int i = 1;
// falseになるまで、文を繰り返し処理する。
while (i <= 11) {
System.out.println("背番号は、" + i + "番だ");
// iを増やすことで、永遠にループしないようにする。
i++;
}
④ do~while文
- do~while文は、条件がfalseになるまでブロック内の文を繰り返し処理する。
- while文が最初の繰り返し前に条件がfalseであれば、処理が行われないのに対して、do~while文は、少なくとも1回は繰り返し処理を行い、その後条件がfalseになるまで繰り返し処理を行う。
sample.java
// 初期値を設定する。
int i = 1;
// doブロック内の文を処理する。
do {
System.out.println("背番号は、" + i + "番だ");
// iを増やすことで、永遠にループしないようにする。
i++;
// falseになるまで、文を繰り返し処理する。
} while (i <= 11) ;
⑤ 文のネスト
- 文は、ネストする(入れ子にする)ことができる。
- ネストすることで、より複雑な記述ができる。
- ネストしすぎるとコードが見ずらくなるため、複数の人と共同で開発する場合には切り分けられる部分は切り分けたほうが良い。
sample.java
// for文の中にfor文のような記述が可能。
// if文など異なる条件文を組み合わせることも可能。
for (int i = 1; i <= 11; i++) {
System.out.println("背番号が" + i + "番の選手だ。");
for (int s = 1; s <= 5; s++) {
System.out.println(s + "回目のシュートを打った。");
if (s == 3) {
System.out.println("シュートを決めた。");
}
}
}
⑥ break文
- break文は、処理の流れを強制的に終了させ、ブロックから抜けることができる。
- switch文では、breakが必須。
sample.java
// i = 8の場合、処理が終了する。
for (int i = 1; i <= 11; i++) {
System.out.println("背番号が" + i + "番の選手だ。");
if (i == 8) {
System.out.println("処理を終了します。");
break;
}
}
console
背番号が1番の選手だ。
背番号が2番の選手だ。
背番号が3番の選手だ。
背番号が4番の選手だ。
背番号が5番の選手だ。
背番号が6番の選手だ。
背番号が7番の選手だ。
処理を終了します。
※i = 8になった時に、breakによって処理が終了されている。
⑦ continue文
- continue文は、繰り返し内の処理をスキップし、ブロックの先頭に戻り、次の処理に入ることができる。
sample.java
// i = 8の場合、処理をスキップし、次の処理に入る。
for (int i = 1; i <= 11; i++) {
System.out.println("背番号が" + i + "番の選手だ。");
if (i == 8) {
continue;
}
}
console
背番号が1番の選手だ。
背番号が2番の選手だ。
背番号が3番の選手だ。
背番号が4番の選手だ。
背番号が5番の選手だ。
背番号が6番の選手だ。
背番号が7番の選手だ。
背番号が9番の選手だ。
背番号が10番の選手だ。
背番号が11番の選手だ。
※i = 8になった時に、continueによって処理がスキップされている。
Javaの勉強の一環でしたが、条件文は、JavaScriptなど他の言語でも使用されるため、基礎をもう一度見直す良い機会となりました。
以上になります。