リテラルと変数の型

リテラル

プログラムのソースコード中に使用される定数のことをリテラルといいます。「25」「hello」などの単なる数字や文字列はリテラルです。変数に代入しなくても、javaはこれを変数の型のうちからどれかを選んであてはめます。

デフォルトはintかdouble

ただの数字のならびは int 、小数部分があると double にします。"abcd" や "1234" など、" " (ダブルクオート)で囲まれていれば 文字列として扱います。どこに書かれているかにもよりますが、ダブルクオートなしで abcd などとすると変数名であるなどと扱われ、多くはエラーになります。また、'a' や '3' など、' ' (シングルクオート)で囲まれていれば char として扱います。これは1つの文字でなければなりません。

12          →   int
-356        →   int
2147483647  →   int
2147483648  →   エラー(intの最大値を超える)
2147483648.0→   double (.0があるのでdoubleの扱い)
12.0        →   double
-45.02      →   double
123e8       →   double (123×108のこと。eがつくとdouble。 'E'も可)

"123.4"     →   文字列
'1'         →   char
true        →   boolean

型を指定する

整数の場合、int の範囲を超えても自動的にlongの扱いをしてくれません。long 型として扱わせるには、12L または 12l のように末尾に L または l を付けます。

小数の末尾に f または F つけて float型、末尾に d または D を付けて double型、を指定できます。末尾に何も付かない小数はdouble型として扱われるので、これを float型の変数に代入しようとするとエラーになるので注意してください。

型の違う代入

変数に値を代入するときには型をあわせるのが原則です。ただし、int の値を long の変数に代入するとか、float の値を double の変数に代入するなどの、より大きな型に代入する場合は自動的に変数の型にあわせて代入します。

◎,○は代入可。×は不可。

代入する数値の型→ intlongfloatdouble
数値の例→ 1212L12F12D
変数の型int×××
long××
float×
double

○の部分はエラー無く代入されますが、実は場合によっては精度が落ちることもあります。

問題

次の表を完成させなさい。

No. 問題 リテラルの型 変数の型 型が合っているか 代入できるか
(1) int a = 123d; doubleint××
(2) int b = -1256;     
(3) int c = 2.0;     
(4) float d = 2.3;     
(5) float e = 33;     
(6) double f = 56e5;     
(7) double g = 78f;     

解答は toi01.txt という名前のファイルに、次のように書いて、java のフォルダに保存すること。

(1) double    int    ×    ×
(2) .........
もくじ

聖愛高等学校
http://www.seiai.ed.jp/
Last Modified