Javaをはじめよう!第5回~エスケープシーケンス、予約語とは~

2015/12/14

はじめに

前回はJavaで使われる専門用語、コメント、リテラルについてご紹介いたしました。

今回も、プログラミングをするにあたって必須となる用語、エスケープシーケンス、予約語についてご紹介させて頂きます。

プログラムの記述の仕方

エスケープシーケンス

文字列リテラル『’』(シングルクォーテーションで囲まれた文字)では、任意の文字1文字だけでなく、16進数形式のUnicodeを表現するエスケープシーケンスがあります。
エスケープシーケンスとは、文字や記号などを通常の文字とは違うように解釈させるもので、記述方法は簡単で『¥』を付け加えるだけです。
では、どのようなときに使用するのでしょうか?例をあげてみます。

System.out.println();で文字列を表示する時に(‘ ‘ ‘)として『’』に囲まれた『’』という文字を一文字表示しようとします。

Sample06.java

package chap01;

public class Sample06 {
	public static void main(String[] args){
                Sytem.out.println('文字列リテラル');
                Sytem.out.println(''');
                
	}
}

実行例

Exception in thread “main” java.lang.Error: Unresolved compilation problem:
文字定数が無効ですat chap01.Sample06.main(Sample06.java:6)

4行目では、問題なくコンパイルが通りましたが、5行目でコンパイルエラーが発生します。
これは、4行目のaと同じように5行目でシングルクォーテーション1文字を表示したかったのですが、文字をシングルクォーテーションで囲まなければならないため、結果として3つのシングルクォーテーションを記述しています。
しかし、コンパイルエラーが発生していまいました。3つ並んだ『’』のうちどれが文字を囲むものかをコンパイルが判断できないためです。
基本的に最初に出現した『’』は次に出現する『’』が対になる理解されるため、コンパイルエラーが発生します。(『’』で囲まれた文字リテラルは必ず一文字であることが要求されます。

single

先程のSample06.javaを変更してエスケープシーケンスを使ってみましょう。

Sample06.java(変更後)

package chap01;

public class Sample06 {
	public static void main(String[] args){
                Sytem.out.println('a');
                Sytem.out.println('¥'');
                
	}
}

実行例

a

このように記述すると、『a』『’』と表示されます。これは、『’』は文字を囲むための機能を持った記号として定めらているのを、『¥』と記述する事によって『’』という文字そのものであると認識させるものであると認識されるためです。

single02

表 エスケープシーケンス例(他にも複数あります)

エスケープシーケンス 意味している文字
¥u 16進数のUnicode’¥u◯◯◯◯’のように使用
¥n LF(改行)
¥r CR(復帰)
¥” 『”』ダブルクオーテーションそのもの
¥’ 『’』シングルクオーテーションそのもの
¥¥ 『¥』文字そのもの

エスケープシーケンスと今までやってきた記述の違いを見てみましょう。

sample07.java ¥nの例

package chap01;
public class Sample07 {
	public static void main(String[] args){
                System.out.print(”123¥n”); //¥nを使って改行
                System.out.print(”456”);
 	}
}

sample07.java printlnの例

package chap01;
public class Sample07 {
	public static void main(String[] args){
                System.out.println(”123”); //¥nを使って改行
                System.out.print(”456”);
 	}
}

上記の2つは同じ結果になります。

実行例 sample07.java

123
456

System.out.println;と¥nの違いはSystem.out.println();は、内容を表示した直後に改行をしますが、¥nは自分の任意の部分で改行をできるという点です。

予約語

Javaのプログラムを書く上で何かしらの機能を予め持っている単語の事を予約語またはキーワードといいます。これまでも使ってきたクラスを宣言する時の「class」も予約語の一つです。

表 Javaの予約語表一覧

abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return short static stricfp super
switch sysnchronized this throw thorws
transient try void volatile while

注)goto とconstは予約語ですが、プログラム上では使用しません。

予約語には分類されませんが、論理リテラルのtrue,false、空リテラルのnullは予め用意されたリテラル(定数)で、予約語と同様に扱われます。今の段階で予約語を全て覚える必要はありません。これから徐々に出てきますので、見つけてみてください。
また、別の識別子で詳しく説明しますが、予約語の大文字、小文字は区別されます。
abstractとAbstractは違うものとして判断されますので、注意してください。

さいごに

今回は、エスケープシーケンスと、予約語についてご紹介させて頂きました。
次回もプログラミングを行う上で重要になる専門用語、識別子、基本データ型についてご紹介いたします。

投稿者情報

パンダマン

パンダマン

パンダマンです。

主にWebシステム開発等を担当しております。
設計・プログラミング。サーバー管理なんでもやります。

今、担当しているプロジェクトではJavaの今まで触れたことのないフレームワークを使うことになり勉強中です。
学生にC言語のプログラミングの基礎を教えたりもしています。
最近「キングダム」にはまっています。

>> パンダマンが執筆した他の記事を読む

法人向け人気レンタルサーバー
法人向け人気専用サーバー
個人向け人気レンタルサーバー