リテラルの型

リテラル

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

public class En { 
       public static void main( String[] args ) {
               double hankei;
               double pai;
               hankei = 4.5;
               pai    = 3.14;
               System.out.print( "面積 = " );
               System.out.println( hankei * hankei * pai );
       } 
}

数字の並びはintかdouble

javaは、ただの数字のならびは int 、小数部分があると double として扱います。

小数点のない数字の並びは int

12 → int -356 → int

小数点のある数字の並びは double

12.0 → double -45.02 → double

long や float を使う

longとして扱うようにするには数字の後ろに、L(小文字も可)を加えます。

12L → long -356L → long

こんな時に使えます。

2147483648 → エラー(intの最大値2147483647を超える数値は書けない) 2147483648L → long(longの最大値は超えないので書ける)

floatとして扱うようにするには数字の後ろに、F(小文字も可)を加えます。

12F → float 23.8F → float

こちらはあまり使う機会はないでしょう。

ダブルクォートで囲まれていれば文字列

"abcd" や "1234" など、" " (ダブルクオート)で囲まれていれば 文字列として扱います。

"Hellow"    →   文字列
"こんにちは"→   文字列
"123.4"     →   文字列
""          →   文字列

ダブルクォートで囲まれた数字は数値としての意味が失われます。通常の足し算、引き算、かけ算やわり算はできなくなります。

逆に、英字などの数字でない文字列をダブルクオートなしで abcd などとすると変数名であるなどと扱われ、多くはエラーになります。

シングルクォートで囲まれていれば文字

また、'a' や '3' など、' ' (シングルクオート)で囲まれていれば char として扱います。これは1つの文字でなければなりません。

'1'         →   char
'あ'        →   char
'\n'        →   char (改行コードの意味です)
'\t'        →   char (タブ文字です)
'\u0009'    →   char (\uの後は16進4桁のユニコード。0009はタブ文字)

true と false は boolean

ダブルクォートのない true と false は boolean の扱いです。

true        →   boolean
false       →   boolean
"false"     →   文字列

その他

必要になったときのために

6.02e23     →   double (6.02×1023のこと。602000000000000000000000の科学技術的表現)
123e8       →   double (123×108のこと。e があると小数点がなくてもdoubleの扱い。 'E'も可)
012         →   int (先頭に0(ゼロ)があると8進表現。 012は8+2で10のこと)
0x1A        →   int (先頭に0x(または0X)があると16進表現。0x1Aは16+10で26のこと)
5D          →   double (Lがlong, Fがfloat, Dはdouble。 小文字も可)
'\b'        →	 char (バックスペース)
'\"'        →	 char (ダブル・クオート)
'\''        →	 char (シングル・クオート)
'\\'        →	 char (バックスラッシュ)
Integer.MIN_VALUE  →	 int (intの扱える最小値。-2147483648のこと)
Integer.MAX_VALUE  →	 int (intの扱える最大値。2147483647のこと)
Long.MIN_VALUE     →	 long (longの扱える最小値。)
Long.MAX_VALUE     →	 long (longの扱える最大値。)
Double.MIN_VALUE   →	 double (doubleの扱える最小値。4.9E-324のこと)
Double.MAX_VALUE   →	 double (doubleの扱える最大値。1.7976931348623157E308のこと)
Double.NaN                 →	 double (非数 (NaN: Not a Number))
Double.POSITIVE_INFINITY   →	 double (正の無限大)
Double.NEGATIVE_INFINITY   →	 double (負の無限大)

問題

プログラム中に次の様に書いてあるとき、どのように取り扱われるか。

int, double などと答えよ

(1) 123456
(2) 9.0
(3) "123456"
(4) 'a'
(5) true

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

(1) ....
(2) ....
(3) ....
(4) ....
(5) ....

Javaプログラミング(Apr.2011)
聖愛中学高等学校
http://www.seiai.ed.jp/