変数と型

<概要>変数の使い方を学びます。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 バイト文字も入れられる!
なぜって、char 型は符号無し16ビットだからですね。
プログラムでは 1 バイト文字の'A' と 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 の加算を行って欲しいわけじゃなくて、
文字列として結合し出力して欲しいからです。


戻る / ホーム