<本章の目的>変数の使い方を習得する。char 型がC言語、C++言語のそれより進化してます!
●問題3-1 int 型変数の宣言・代入・参照を行うプログラムを作って下さい。
○答え
public class Var1{
public static void main(String[] args){
int x;
x=4;
System.out.println(2*x+3);
}
}
○実行結果
D:\atsushi\Java\List3-1>java Var1
11
-- Press any key to exit (Input "c" to continue) --
○解説
C言語、C++言語と一緒。
基本型の詳細は「基本型一覧」をご覧あれ。
●問題3-2 変数を二つ宣言するプログラムを作って下さい。
○答え
public class Var2{
public static void main(String[] args){
int x=15;
int y=32;
System.out.println((x+y)/2);
}
}
○実行結果
D:\atsushi\Java\List3-2>java Var2
23
-- Press any key to exit (Input "c" to continue) --
○解説
(15+32)/2=23.5 だが、int 型にキャストされ 23 となっている。
●問題3-3 浮動小数点数を使い、問題3-2と同じ計算をするプログラムを作って下さい。
○答え
public class Var3{
public static void main(String[] args){
double x=15;
double y=32;
System.out.println((x+y)/2);
}
}
○実行結果
D:\atsushi\Java\List3-3>java Var3
23.5
-- Press any key to exit (Input "c" to continue) --
○解説
double 型変数を整数で初期化しているが、適切な型の変換が行われます。
●問題3-4 char 型の宣言・代入・参照を行うプログラムを作って下さい。
○答え
public class Var4{
public static void main(String[] args){
char a='A';
char alpha='α';
char hiroshi='浩';
System.out.println("変数 a の値は "+a);
System.out.println("変数 alpha の値は "+alpha);
System.out.println("変数 hiroshi の値は "+hiroshi);
}
}
○実行結果
D:\atsushi\Java\List3-4>java Var4
変数 a の値は A
変数 alpha の値は α
変数 hiroshi の値は 浩
-- Press any key to exit (Input "c" to continue) --
○解説
char 型変数には 2 バイト文字も入れられる!
'A' は1バイト文字ですが、'α' と '浩' は2バイト文字。
なんて日本語ユーザーに優しいんだー(泣)。
Java言語の char 型の値は Unicode の文字コードになっています。
●問題3-5 変数名に日本語を使ったプログラムを作って下さい。
○答え
public class Var5{
public static void main(String[] args){
char 変数='日';
char 変数2='本';
char 変数san='語';
System.out.println(""+変数+変数2+変数san);
}
}
○実行結果
D:\atsushi\Java\p59>java Var5
日本語
-- Press any key to exit (Input "c" to continue) --
○解説
Unicode の文字は何でも変数名に使えます!
ただし、数字で始めることは出来ません。
したがって、答えのように 2 バイト文字を含んだ変数名を使うことが出来ますが、
あまりお勧め出来ないのは言うまでもありません。
○注意
println("3+2="+3+2); の実行結果が 3+2=32 だったのを覚えていますか?
ここで重要なのは+演算子が左結合だという事です。
最初の+演算子は、文字列 "3+2=" と数値 3 に挟まれています。
文字列と数値に挟まれた+演算子は文字列の結合を行います。
これより新しい文字列 "3+2=3" が作られ、
更に数値 2 と結合して "3+2=32" という文字列が作られるわけです。
では、println(3+2); とした場合はどうなるでしょうか?
実行結果には 5 と表示されます。
println メソッドの一番左に引数は文字列ではなく、数値 3 ですね。
したがって、左結合より数値 3 と数値 2 が結合されますが、
数値に挟まれた+演算子は加算として働きます。
つまり、3+2 の加算結果 5 を文字列に変換して出力することになります。
答えの println メソッドの最初の引数が空の文字列 "" となっているのは、
char 型の値である Unicode の加算を行って欲しいわけじゃなくて、
文字列として結合し出力して欲しいからです。