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

お、おお。
一体どうしたんだ?

それが、、、
しがない先生がこの前言ってくれたとおり「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日目:型を意識しよう」というテーマでお話ししていくよ。
ぜひお楽しみに。

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


コメント