1. はじめに
さて、ここからプログラミングらしくなっていきます。
プログラミングは、制御文があって光り輝き出します!!
その制御文の一つ!!とても重要な「if 文」を勉強しましょう!!
2. if 文
「if 文」とは、処理の流れで、
「もし~ならば」次の処理をする
「もし~でないならば」次の処理はしない
というように条件で処理を分岐させます。
例えば現実の世界ですと、
「もし雨が降れば」→「傘をさす」
「もしご飯が食べたいならば」→「ご飯を炊く」
「もしパスタが食べたいならば」→「パスタを茹でる」
といった感じです。日常生活にも if 文は多く潜んでいます。
2.1. if 文 - 基礎
では!!!実際に基礎構文を見ておきましょう!!
public class Main {
public static void main(String[] args) {
// ↓ if文はここから
if (条件式) {
}
// ↑if文はここまで
}
}
if 文の書き方はシンプルですよね!
if ( 条件式 ) { 処理内容 } が定石です!!
条件式と書かれているところに、条件分岐を起こしたい条件式を書いて見てください。
条件式の結果は、「true」「false」のいずれかになります。
2.2. if 文 - 応用
ちょっぴち実態を持たせてあげます。
例えばですと、
public class Main {
public static void main(String[] args) {
// 現在の天気状態
String weather = "rain";
// 現在の天気はどうであるか判定
if (weather.equals("rain")) {
// 雨である 一言コメントを出力しよう
System.out.println("今日は雨だ。傘を持っていかないと");
}
}
}
このようなソースがあります。
処理の解説をしますと、
現在の天気状態を表す「weather」という変数が宣言され、「"rain"」で初期化されています。
そして肝であるif 文に入りました。
ここでの条件式は、
「weather.equals("rain")」
というもの。
これは「weather」の持っている文字列は「"rain"」と同じか?
という条件式になっています。
同じであれば「true」、同じでなければ「false」に置き換えられます。
「true」は真、条件に一致したということ
「false」は偽、条件に一致しなかったということ
イメージとしては、
if (weather.equals("rain")) { ... }
↓
if (true) { ... }
といった感じですね。
if 文の条件式が「true」になると { } 内の処理が行われますー!
今回は「今日は雨だ。傘を持っていかないと」という出力になりました。
ざっくりまとめると、
1番目の条件「weather.equals("rain")」が一致すれば、
「今日は雨だ。傘を持っていかないと」と出力する
そして例えば、
「weather」の初期化で「"Fine weather"」と入力するば、、、、、
public class Main {
public static void main(String[] args) {
// 現在の天気状態
String weather = "Fine weather";
// 現在の天気はどうであるか判定
if (weather.equals("rain")) {
// 雨である 一言コメントを出力しよう
System.out.println("今日は雨だ。傘を持っていかないと");
}
}
}
何も出てきません。寂しい。
ここでも重要なのは、 if 文に当てはまらず、「System.out.println("今日は雨だ。傘を持っていかないと");」の処理が行われなかったことに注目です!!
3. if - else 文
さて次は、「if - else」 文。
これは、
if 「もし~であれば」処理を行う
else 「ifに当てはまらないことがあれば」処理を行う
といった if 文に else がくっついたイメージを持ってもらえると嬉しいかな。
else 文は、if 文に当てはまらなかった条件があれば必ず拾ってくれます。
3.1. if - else 文 - 基礎
基礎構文は、
public class Main {
public static void main(String[] args) {
// ↓if - else 文はここから
if (条件式_1) {
// 条件式_1がtrueの場合行われる処理
} else {
// if 文に当てハマらなかった時に行われる処理
}
// ↑if - else 文はここまで
}
}
3.2. if - else 文 - 応用
例えば、
public class Main {
public static void main(String[] args) {
// 現在の天気状態
String weather = "Fine weather";
// 現在の天気はどうであるか判定
if (weather.equals("rain")) {
// 雨である 一言コメントを出力しよう
System.out.println("今日は雨だ。傘を持っていかないと");
} else {
// 上記の条件に当てはまらなかったみたいだ 一言コメントを出力しておこ
System.out.println("今日は良い天気みたいだね。ルンルンルンバ");
}
}
}
このプログラムは、先ほどと同じく、
解説をすると、
1番目の条件「weather.equals("rain")」が一致すれば、
「今日は雨だ。傘を持っていかないと」と出力
1番目、条件に一致しなかった場合は、
「今日は良い天気みたいだね。ルンルンルンバ」と出力
といった感じかな。
4 if - else if - else 文
if 文に関して最後に1つ!大事なものが!
「if - else if - else」文と呼ばれるものです。
これは、条件が複数になった場合です。
例えば、
「晴れていたら~をする」
「晴れていなくて、曇っていたら~をする」
「晴れでも曇りでもなく、雨だったら~をする」
「それ以外なら引きこもる」
といった感じで条件で考えてみましょう。
4.1. if - else if - else 文 - 基礎
まず、式の書き方ですが、
public class Main {
public static void main(String[] args) {
// ↓if - else if - else 文はここから
if (条件式_1) {
// 条件式_1がtrueの場合行われる処理
} else if(条件式_2){
// 条件式_2がtrueの場合行われる処理
} else {
// 上記の条件に当てハマらなかった時に行われる処理
}
// ↑if - else if - else 文はここまで
}
}
少しゴチャゴチャとしていまっていますね。。
4.2. if - else if - else 文 - 応用
例えば、
public class Main {
public static void main(String[] args) {
// 現在の天気状態
String weather = "Fine weather";
// 現在の天気はどうであるか判定
if (weather.equals("Fine weather")) {
// 晴である
System.out.println("今日は晴れだ。曇り一つない喜びの晴れじゃないか!遊びに行こう!");
} else if (weather.equals("cloudy")) {
// 曇りである
System.out.println("今日は曇りだ!しかし関係ない!遊びに行こう!!");
} else if (weather.equals("rain")) {
// 雨である
System.out.println("今日は雨だ。傘が必要だが遊びに行こう!!");
} else {
// 上記の条件に当てはまらなかった
System.out.println("今日の天気よくわからない。ルンルンルンバ、遊びに行こう!!");
}
}
}
解説をすると、
1番目の条件「weather.equals("Fine weather")」が一致すれば、
「今日は晴れだ。曇り一つない喜びの晴れじゃないか!遊びに行こう!」と出力
1番目の条件が一致せず、2番目の条件「weather.equals("cloudy")」が一致すれば、
「今日は曇りだ!しかし関係ない!遊びに行こう!!」と出力
1番目と2番目の条件が一致せず、3番目の条件「weather.equals("rain")」が一致すれば、
「今日は雨だ。傘が必要だが遊びに行こう!!」と出力
1番目、2番目、3番目の条件全てに一致しなかった場合は、
「今日の天気よくわからない。ルンルンルンバ、遊びに行こう!!」と出力
このようにプログラムを組んでみた。
上記のプログラムでは、「weather」に「"Fine weather"」で初期化しているので、
1つ目の条件式が一致し、「今日は晴れだ。曇り一つない喜びの晴れじゃないか!遊びに行こう!」が出力されるはずだ。
注意点があるとすれば、ただ一度どこかで条件が一致してしまうと、その後の if - else や if - else - if 文の判定はスキップされます!
他の条件とも一致させたい場合は工夫が必要になる。ちょっと注意ですね。
もうすでにやっている方もいるかと思うが、「weather」の値を「"cloudy"」「"rain"」「"koukonko"」なんか適当に変えてみると結果が変わって面白いよ!
5. おわりに
今回も読んで頂いてありがとうございます!!!!
タイトルだけでも読んで頂ければ嬉しい!!
ちょっと話は変わりますが、
条件分岐の説明は少しお時間を頂きたいです。
ゆっくりじっくりやっていこうと思ってもいます。
お付き合いいただけると嬉し!
次回は「switch文」についてご説明したいと思います。ノシ
次回 →「Javaのお勉強 ~その11~ switch文」