2012年5月24日木曜日

【Forest君用】変数への代入(復習)

プログラミング未経験者が一番最初につまずくのは変数の代入だそうです。
ということで、今回は復習として変数への代入について書いてみます。

シンプルに文字列を例に挙げてみます。
// まずは変数の宣言。変数名はtext
String text;

// 変数への代入。"代入"という文字列を代入
text = "代入";

ここまではOKでしょうか?
変数を宣言し、"="で値を代入します。
String型の変数の場合は""で囲んだ値(文字列)を代入できます。
イメージとしては、textという器に"代入"が入ってる感じかな。

String型は文字列の結合ができるので、ついでにおさらい。
// まずは変数の宣言。変数名はtext。"代入"という文字列を代入
String text = "代入";

// 変数textに"は簡単"という文字列を結合
text = text + "は簡単";

// text += "は簡単";とコーディングしても同じこと

文字列の結合は"+"を使います。
 "Xperia Play" + "欲しい"は"Xperia Play欲しい"となります。
イメージはtextという器にまず"代入"と"は簡単"が順番に入っている感じ。 

文字列の結合についてみましたが、 次の例はどうなるかわかりますか?
// まずは変数の宣言。変数名はtext
String text;

// int型の変数を宣言。変数名はnumber。1を代入
int number = 1;

// textに文字列とint型変数を結合して代入
text = "Androidが" + number + "番好き!";

textは最終的に"Androidが1番好き!"が代入されています。
変数numberはint型なのにString型に代入できるの?って思った方、するどい!!
本来であればコンパイルエラーとなりますが、
javaにはオートボクシングという機能があり、自動で文字列に変換してくれています。
但し、text = number;みたいにint型の変数のみを代入しようとするとエラーになります。
文字列と合わせてならOKって事です。

因みに初心者が陥りやすい間違え。sirocoもよくやったな。。。
// まずは変数の宣言。変数名はtext
String text;

// "1 + 1 = 2"と代入したい。。。
text = "1 + 1 = " + 1 + 1;

// "1 + 1 = 11"と表示される。
// 左から結合されるため"1 + 1 = 1" + 1となってしまう。
// text = "1 + 1 = " + (1 + 1); すれば希望通り

// 結合するつもりが再代入してしまう。。。
text = "私は";
text = "Androidが";
text  = "好きです";

// 最終的に代入されているのは"好きです"のみ。。。

などなど。
Stringに偏りましたが、代入について少しでも理解が深まれば幸いです(^^ ♪

0 件のコメント:

コメントを投稿