リテラル

2010 年 2 月 7 日 日曜日  【 カテゴリー: Javaの基本


今回はリテラルについてみていきます。phpなど何年もプログラミングしていますが「リテラル」っていう言葉自体、頭からすっかり忘れていました。「リテラル」という言葉は知らなくても、リテラルをしっかり意識しないと思わぬバグがあったりコーディング自体できないので今回はしっかり復習していこうと思います。

リテラルとは

Wikipedia」から引用します。

コンピュータプログラミングにおいてリテラルは、ソースコード内に値を直接表記したものをいう。数値、文字列、関数などさまざまな型のものが存在し、それぞれの表記方法も言語によって異なる。
リテラルを記述できることは、第一級オブジェクトを構成するための要件として見なされる場合もある。
テキストエディタには、リテラルとその他のコードを区別しやすいように、シンタックスハイライトを実装したものもある。

なんか難しいことのように書かれていますが、簡単に言えば「ちゃんと数値や文字などの値として認識してくれるにはどう書けばいいのか」。表記方法って書かれているのでそんな感じですね。ソースコードには変数や関数、構文などが記述されています。そこに「abc」とだけ書かれていて何も規則がなかったらこの「abc」は変数? 文字列? とわからなくなります。文字列と認識してほしければ文字列と認識させる書き方があります。これが文字列リテラルです。このように数値の表記方法は? 文字の表示方法は? などいくつかのリテラルがあります。

整数リテラル

ソースコードで整数として認識させたければどう書けばいいのか?
整数はそのままです。「 123 , -567 」などのようにそのまま記述するだけで整数として認識してくれます。しかしこれは10進数での表記です。プログラムによっては8進数や16進数で整数を扱いたいときもあります。8進数や16進数は次の表のような決まりがあります。整数リテラルも変数と同様に型をもっておりデフォルトは「int型」です。long型にしたい場合は語尾に「l または L」をつけます。

種類 表記方法
10進数 そのまま記述 123 , -123
8進数 0ではじめる 012 , 056
16進数 0xではじめる 0x1234 , 0xab12
long型 l (L)で終わる 123l, -123L

浮動小数点リテラル

ソースコードで実数として認識させたければどう書けばいいのか?
基本はそのまま記述すればいいです。指数を用いることもあり、指数表記は「e + 乗数」になります。浮動小数点リテラルも変数と同様に型をもっておりデフォルトは「double型」です。float型にしたい場合は語尾に「f または F」をつけます。

種類 表記方法
10進数 そのまま記述 1.23 ,  5.678
指数表記 e + 乗数 1.25e-5    (1.25×10-5 のこと)
float型 f (F)で終わる 1.23f, -5.678F

文字リテラル

ソースコードで文字として認識させたければどう書けばいいのか?
文字はそのまま記述することができません。「a」と記述しただけでは文字なのか変数なのかわからなくなります。そこで文字と認識させるためにシングルクォーテーションで囲みます。文字は「1文字」、複数の文字の集まりは「文字列」で区別されます。またJAVAでは「漢」などのマルチバイト文字でも1文字はきちんと1文字として扱われます。

種類 表記方法
文字 シングルクォーテーションで囲む 'a'  , '漢'

文字列リテラル

ソースコードで文字列として認識させたければどう書けばいいのか?
文字リテラルと同様にそのまま記述はできません。「abc」と記述しただけでは文字なのか変数なのかわからなくなります。そこで文字列と認識させるためにダブルクォーテーションで囲みます。リテラルも変数と同様に型をもち、文字リテラルは文字コードを格納するchar型、文字列リテラルはオブジェクト型(String型)で管理が全く違います。

種類 表記方法
文字 ダブルクォーテーションで囲む 'abc' , '漢字'

論理型リテラル

真偽として認識させたければどう書けばいいのか?
真は「true」、偽は「false」と記述します。true と false はそのまま記述できます。この2語は予約語で変数名として使えないのかと思ったらきちんと定義できました。では変数名か論理型リテラルかわからなくならないのかと試しにコード書いて確かめたら変数の値が無視されました。変数名「true」で値を「10」格納させてprintlnで出力させたら「true」と表示されました。変数に格納はできるが出力できない現象が発生します。いっそうのこと「ture」と「false」も予約語にして変数として定義できないようにしてもらいたいです。

種類 表記方法
true と記述 true
false と記述 false

空リテラル

空として認識させたければどう書けばいいのか?
「null」とそのまま記述するだけです。この「null」は予約語登録されているので変数名としては使えません。なので「null」とソースコードにあれば必ず空リテラルのことです。nullと空文字の違いは「はてな」さんを参考にしてください。

種類 表記方法
null と記述 null

以上で今回はリテラルについてみていきました。プログラミングするうえでの重要な規約なのでかなり重要ですね。プログラム言語によってリテラルの内容は違うので、その言語の初心者にとってバグなど起こさないためにまずしっかり身につけないといけない内容です。


にほんブログ村 IT技術ブログ Webサイト構築へ
にほんブログ村
【WEBサイト構築・プログラムブログ】
ランキング参加中!よろしければ「クリック」お願いします。
にほんブログ村 IT技術ブログ プログラム・プログラマへ
にほんブログ村
2010 年 2 月 7 日 日曜日  【 カテゴリー: Javaの基本

コメントをどうぞ

※管理者による確認後に表示されます。表示までしばらくお待ちください。