
では8日目の今日は「if文」について学んでいこうか。

「if文」とはなんですか?

「if文」とは、「もし〜ならば」という条件が成立しているかどうかによって、実行するプログラムを「分岐する」文だよ。

難しいことを言われても全く頭に入ってきません。

いやそこはもうちょっと頑張れよ!

そうだな、、、
では今回は一緒にプログラムを作りながらif文のイメージを定着させていこう!

どんなプログラムを作るのですか?

今から作っていくプログラムは、
・もし今の天気が晴れなら画面に「晴れです」と表示
・もし今の天気が雨なら画面に「雨です」と表示
させていくものだよ。

ではまず、こんな感じで「tenki」という変数を作ろう。
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
String tenki = "晴れ";
}
}
今は「晴れ」を代入させていますね。

ここから早速「if文」を書いてみるよ。
まずは下の通り、プログラムを3行追加してみてね。
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
String tenki = "晴れ";
if (tenki.equals("晴れ")) {
System.out.println("晴れです");
}
}
}
言われたとおり書けました!

ナイス!
それではこれを実行してみるとどんな結果になるかな?
晴れです
「晴れです」と表示されてる!

でもあれ、、、?

これって「System.out.println(“晴れです”);」と1行書いて実行するのと何が違うのか。。。
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
System.out.println("晴れです");
}
}晴れです
まぁ待て。
if文の本質が見えてくるのはここからなんだ。

さっきtenkiという変数に「晴れ」を代入したと思うけど、次は「雨」を代入してみてほしい。

こういうことですか?
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
String tenki = "雨";
if (tenki.equals("晴れ")) {
System.out.println("晴れです");
}
}
}
そう。
変えられたら実行して結果を確認してみよう。

あれ?
何も表示されない。。。

あ、、、わかった!!!

9行目の「if」から始まるプログラムで、10行目を実行するかどうかを分けているのか。。。!

当たり!
少しプログラマーっぽい感じできちんと言っておくと、
・もし変数tenkiに”晴れ”という文字列が代入されていれば、10行目を実行する
といった感じになるね。

つまり「”雨”」の場合だと10行目は実行されないから、結果的に何も表示されないというワケか。。。

お見事!
では「if文」の基本を理解したところで、次はもう半分について見ていこうか。

ん、、、もう半分とは。。。?

おやおや忘れたのかい。
・もし今の天気が雨なら画面に「雨です」と表示
のところだよ。

なるほど、、、いや待てよ。。。
今「雨」の場合だと何も表示されないってことは、、、

よし!
こんな感じでその下に「雨です」と表示するプログラムを作れば。。。!
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
String tenki = "雨";
if (tenki.equals("晴れ")) {
System.out.println("晴れです");
}
System.out.println("雨です");
}
}
おーなるほど。
なかなかいいところを突いてきたね。

これは確かにtenkiに「”雨”」が代入されている今の場合だと、、、
雨です
しっかりと「雨です」と表示されているけど、、、

「けど、、、」???

tenkiに「”晴れ”」が代入されている場合だと果たしてどうなるかな?
みんなも一緒に考えてみてほしい。
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
String tenki = "晴れ";
if (tenki.equals("晴れ")) {
System.out.println("晴れです");
}
System.out.println("雨です");
}
}晴れです
雨です
あれ、、、?
晴れなのか雨なのかどっちだ。。。

どうしてこうなるのか少し理屈っぽく言うと、
・13行目のプログラムは、tenkiになにが代入されていようとも必ず実行される文
だからだよ。

まぁ要はこれだとうまくいかないってわけ。

じゃあ一体どうすれば。。。

そんなときは「else」というものを使えばいい!

えるす。。。?
エロス。。。?

ちょっと待った!!!
いや、、、俺が悪いか。。。

とにかく!
「else」は日本語で「それ以外なら」という意味だから、こんな感じで書いてくれればいいんだ。
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
String tenki = "晴れ";
if (tenki.equals("晴れ")) {
System.out.println("晴れです");
} else {
System.out.println("雨です");
}
}
}
書けました!

よし。
では今の状態のtenkiに”晴れ”が代入されている場合に実行すると、、、
晴れです
次にtenkiに”雨”を代入して実行してみると、、、
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
String tenki = "雨";
if (tenki.equals("晴れ")) {
System.out.println("晴れです");
} else {
System.out.println("雨です");
}
}
}雨です
やった!
ちゃんと「雨です」とだけ表示された!!!

おめでとう!
ここでまた理屈っぽく言っておくと、
・もしtenkiに”晴れ”が代入されていれば、10行目を実行
・それ以外なら(もしtenkiに”晴れ”が代入されていなければ)、12行目を実行
といった感じになるね。

なるほど。
なんとなくですが理解することができました。

それはよかった。
ここまでが「if文」の基本だよ。
ということで明日はこれをもう少しだけ拡張した「else if文」というものについて見ていこう。
次回「9日目:else if文」もぜひお楽しみに。

しがない先生、今日もありがとうございました!


コメント