8日目:if文

Java超・入門物語
しがない先生
しがない先生

では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文」もぜひお楽しみに。

ぽっちゃん
ぽっちゃん

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

コメント

タイトルとURLをコピーしました