4日目:変数を使いこなせ!

Java超・入門物語
ぽっちゃん
ぽっちゃん

うわぁぁあああ〜〜〜〜!!!!!

しがない先生
しがない先生

お、おお。

一体どうしたんだ?

ぽっちゃん
ぽっちゃん

それが、、、

しがない先生がこの前言ってくれたとおり「System.out.println();」を3個書いて僕の自己紹介文をさらに良いものに変えようとしていたんですが、、、

import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!

        System.out.println("私はかっこいいです")
        System.out.println("私はすごいです")
        System.out.println("私は天才です")
    }
}
私はかっこいいです
私はすごいです
私は天才です
ぽっちゃん
ぽっちゃん

この「私」の部分を「ぽっちゃん」に変えようとすると、、、

ぽっちゃん
ぽっちゃん

3個とも全部「ぽっちゃん」に変えないといけないからめんどくさくて、、、

しがない先生
しがない先生

なるほどね。

確かに今は3個だけだからそこまで時間はかからないと思うけど、

しがない先生
しがない先生

これが10個、はたまた100個って増えていったらその数だけ「私」の部分を「ぽっちゃん」に変えないといけないから、それこそ日が暮れてしまうね。

ぽっちゃん
ぽっちゃん

もしかして何かいい解決策があるんですか?

ぽっちゃん
ぽっちゃん

プログラマーらしく自動で「ぽっちゃん」に一瞬で変えられるとか。。。

しがない先生
しがない先生

そんなことはできないんだけど、ここで「変数」という仕組みを使うことによって負担を大きく減らすことができるよ。

ぽっちゃん
ぽっちゃん

へん、、、すう。。。

変な数字?

ぽっちゃん
ぽっちゃん

変態な数字とか、、、?!

しがない先生
しがない先生

まじか、、、この先大丈夫かな。。。

しがない先生
しがない先生

とにかく!

さっきぽっちゃんが言ってくれたとおり、上のプログラムでとある共通している文字があったと思うんだけど、それはなんだった?

ぽっちゃん
ぽっちゃん

ええっと、、、

「私」ですか?

しがない先生
しがない先生

そう。

これを「変数」を使ってまとめておいてほしいんだ。

とは言っても最初は何をすればいいのか分からないと思うから、下のプログラムをそのまま真似して書いてみてほしい。

ぽっちゃんの場合、7行目に「String name = “私”;」と追加してみて。

ぽっちゃん
ぽっちゃん

はぁ。。。

import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!

        String name = "私";
        
        System.out.println("私はかっこいいです");
        System.out.println("私はすごいです");
        System.out.println("私は天才です");
    }
}
ぽっちゃん
ぽっちゃん

とりあえず言われたとおり7行目に「String name = “私”;」と追加しました。

しがない先生
しがない先生

ありがとう。

ではその下の3行ある「System.out.println()」の中の部分をこんな感じで書き換えてほしい。

import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!

        String name = "私";
        
        System.out.println(name + "はかっこいいです");
        System.out.println(name + "はすごいです");
        System.out.println(name + "は天才です");
    }
}
ぽっちゃん
ぽっちゃん

なんだかすごくプログラムがややこしくなったような。。。

しがない先生
しがない先生

一見はそう見えるかもしれないね。

でもプログラムとしては一旦これで完成だよ。

ぽっちゃん
ぽっちゃん

ええ〜〜〜!

これで?こんなので???

しがない先生
しがない先生

実行して結果を見れば、これがどういうことなのかがすぐに分かるよ。

ぽっちゃん
ぽっちゃん

ええっと、、、緑のボタンをクリックして実行っと。

私はかっこいいです
私はすごいです
私は天才です
ぽっちゃん
ぽっちゃん

おおっ。

なぜか元の自己紹介文が表示されている。

ぽっちゃん
ぽっちゃん

nameが、、、ん?

「+」記号で足し算、、、??

しがない先生
しがない先生

まあまあ、理屈は後で話すから一旦置いておいて、

ここからがさっきの本題なんだけど、7行目の「String name = “私”;」の「私」という文字を「ぽっちゃん」に変えてみてほしい

ぽっちゃん
ぽっちゃん

ん〜。

なんだかよくわからないけど分かりました。

import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!

        String name = "ぽっちゃん";
        
        System.out.println(name + "はかっこいいです");
        System.out.println(name + "はすごいです");
        System.out.println(name + "は天才です");
    }
}
しがない先生
しがない先生

ではこれで実行してみるとどうなるかな?

ぽっちゃん
ぽっちゃん

え?これで実行ってポチッ。

ってアレ〜〜〜!?

ぽっちゃんはかっこいいです
ぽっちゃんはすごいです
ぽっちゃんは天才です
ぽっちゃん
ぽっちゃん

なぜか全部「私」から「ぽっちゃん」に変わっている!!!

ぽっちゃん
ぽっちゃん

でも一体どうして。。。

しがない先生
しがない先生

そうだね。

ではここからは少し理屈を説明するから頑張って理解してみようか。

しがない先生
しがない先生

ということでもう一度さっきのプログラムを見てみよう。

まずはぽっちゃんがさっき追加してくれた7行目から。

String name = "ぽっちゃん";
ぽっちゃん
ぽっちゃん

う〜ん。

やっぱりなんだかよくわからないな。

しがない先生
しがない先生

この1行では、とても噛み砕いて言うと、

「name」というラベルの付いた箱の中に”ぽっちゃん”という文字を閉まっているんだ。

ぽっちゃん
ぽっちゃん

なるほど。

nameの中に”ぽっちゃん”が入っている感じか。。。

しがない先生
しがない先生

そう。

ちなみにここでの「name」が今回の「変数」に当たるよ。

そのイメージのまま次のプログラムを見てみよう。

System.out.println(name + "はかっこいいです");
System.out.println(name + "はすごいです");
System.out.println(name + "は天才です");
ぽっちゃん
ぽっちゃん

あ!!!

ぽっちゃん
ぽっちゃん

もしかして「name」と書いてあるところで、その箱の中の”ぽっちゃん”を取り出しているとか、、、?

しがない先生
しがない先生

おお〜!

よく気づいたね。

まさしくそういうことだよ。

しがない先生
しがない先生

こんな感じで箱の名前をそのまま書くことによって、その箱の中に入っている値を取り出すことができるんだ。

ぽっちゃん
ぽっちゃん

なるほど。

だから箱の中身を「私」から「ぽっちゃん」に変えただけで、取り出す方が全部変わったってことか。

しがない先生
しがない先生

ズバリ、そういうことだね。

じゃあ最後は「変数」にまつわる問題を1つだけ出して終わりにしよう。

しがない先生
しがない先生

これはどんな結果になると思う?

今のぽっちゃんならわかるはず。

import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
        // Your code here!
        
        String hello = "こんにちは、";
        String name = "ぽっちゃん";
        System.out.println(hello + name);
    }
}
ぽっちゃん
ぽっちゃん

ええ〜っと、

helloの箱の中に「”こんにちは、”」が入っていて、nameの箱の中に「”ぽっちゃん”」が入っているから、、、

ぽっちゃん
ぽっちゃん

それを「+」記号で繋げて、「こんにちは、ぽっちゃん」が表示されるはず!

しがない先生
しがない先生

よし、実行して答えを見てみよう。

こんにちは、ぽっちゃん
ぽっちゃん
ぽっちゃん

よし!

正解だ!!!

しがない先生
しがない先生

ナイス!

今日で変数について少しはわかったかな?

ということで今回はこの辺りで締めくくろうか。

しがない先生
しがない先生

次回は「5日目:型を意識しよう」というテーマでお話ししていくよ。

ぜひお楽しみに。

ぽっちゃん
ぽっちゃん

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

コメント

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