「プログラムを書いて実行する人」のことを「プログラマー」と言いますが、「プログラマー」は、全員、十中八九「統合開発環境」を使ってプログラムを書いています。ここまでくれば、もう「プログラマー」の仲間入りです。
この記事では、変数や基本データ型について解説していきます。
変数を使ってみよう
今度は「変数」を使ってみましょう。
変数とは「データを入れておくことができる箱」です。Javaでは、変数によって値を一時的に保管しておくことが可能です。後で必要な時に変数から値を取り出します。簡単に言うと、パソコンで処理をするときに、データを代入して効率的に処理をする箱といった認識で良いでしょう。ちょっと小難しそうな名前ですが、変数がやりたいことは至って単純です。
Java変数の書式
データ型 変数 = 値;
実際に変数を使ってみましょう。
[Main.java (main method)]
1 2 3 4 5 6 |
public static void main(String[] args) { String str = "Hello Java World!"; //String型の変数strに”Hello Java World!”を入れる System.out.println(str); int i = 11; // int型の変数iに11を入れる System.out.println(i); } |
コンソール
Hello Java World!
11
変数名(識別子)
変数を使うにはデータ型と変数名を指定する必要があります。変数に名前を付け、クラス内で宣言することで、以降その名前が変数の識別子として認識されます。ちなみに変数の名前は、適当に選んで決めることが出来ます。
ただし、識別子には、次のような規則が存在します。
識別子の規則
- 通常、識別子には、英字・数字・アンダースコア・$を使用する。
- 識別子の長さには制限はない。
- 予めJavaが予約しているキーワードを使用することは出来ない。
「class」や「main」等 - 識別子の1文字目に数値を使用することは出来ない。
- 大文字と小文字は異なるものとして区別される。
データ型
Javaで変数を使うためには、どの型の値を記憶させるための変数なのかを、あらかじめ決めておく必要があります。
文字列(文章のこと)を扱いたい場合は「String型」、整数値を扱いたい場合は「int型」を使います。文字列を扱う場合は対象をダブルクォーテーションで囲む必要がありますが、数値の場合は必要ありません。
今の段階では、文字列には「String」、整数には「int」と覚えておけばよいです。
基本データ型については、後述します。
リテラル
Javaでは、文字と文字列、数値の記述方法が厳格に区別されています。1つの文字を「文字」、文字の並びを「文字列」、整数や浮動小数点数等を「数値」として区別して扱っています。
Javaでは、一定の「値」を表すために用いられる表記方法を「リテラル」と呼びます。
文字リテラル
「'a'」や「’あ’」のような、1つの文字を「文字リテラル」と呼びます。javaのコード内で「'(シングルクォーテーション)」で括って記述します。
また、文字の中には、1文字で記述できない特殊な文字が存在します。「¥1000-」と出力する場合などがそれにあたります。その場合は、1文字目に「¥」を付けて2文字の組み合わせで「1文字」を表します。これを「エスケープシーケンス」と呼びます。
[Main.java (main method)]
1 2 3 4 5 |
public static void main(String[] args) { int yen = 1000; // エスケープシーケンスを使用して「¥」記号を表す System.out.println("金額は、¥¥"+yen+"-になります。"); } |
コンソール
金額は、¥1000-になります。
その他のエスケープシーケンス一覧を下記に示します。
エスケープシーケンス | 意味 |
¥b | バックスペース |
¥t | 水平タブ |
¥n | 改行 |
¥f | 改ページ |
¥r | 復帰 |
¥' | シングルクォーテーション |
¥" | ダブルクォーテーション |
¥¥ | 円記号 |
文字列リテラル
「”aaa”」や「"あああ"」のような、複数の文字の並びを「文字列リテラル」と呼びます。javaのコード内で文字列を記述するには「"(ダブルクォーテーション)」で括って記述します。
[Main.java (main method)]
1 2 3 4 5 |
public static void main(String[] args) { // 文字列「"Hello Java World!"」の出力 String str = "Hello Java World!"; System.out.print(str); } |
コンソール
Hello Java World!
数値リテラル
数値を表記する場合には、文字や文字列の場合とは異なり「クォーテーション」では括りません。誤って括ってしまうと文字や文字列として扱われてしまうので意図しない動作の原因になってしまうことがあるので注意してください。
[Main.java (main method)]
1 2 3 4 5 |
public static void main(String[] args) { // 数値リテラル「1234567890」の出力 int num = 1234567890; System.out.print(num); } |
コンソール
1234567890
Javaの数値リテラルは、10進数以外にも8進数や16進数を使って表すことも可能です。
基本データ型の概要
データ型は変数を宣言するのと同時に指定する必要があるのは「変数を使ってみよう」の項でお話しした通りです。基本データ型とはデータ型の中でも最も基礎とされている8つのデータ型のことです。
Javaでは次の基本データ型が用意されています。
データ型 | 値 | 範囲 |
byte | 8ビット整数 | -128~127 |
short | 16ビット整数 | -32768~32767 |
int | 32ビット整数 | -2147483648~2147483647 |
long | 64ビット整数 | -9223372036854775808~9223372036854775807 |
float | 32ビット単精度浮動小数点数 | |
double | 64ビット倍精度浮動小数点数 | |
char | Unicode文字、 | \u0000~\uffff |
boolean | 論理値(true または false) |
先ほど変数を宣言する際に指定したint型は-2147483648~2147483647までの整数値を扱えるデータ型です。それ以上大きい値を使いたい場合はlong、少数を扱いたい場合はfloatやdoubleを使います。
「long」は整数値の最後に「L」、「float」は最後に「f」を付ける必要があります。「char」はUnicode文字を扱えます。文字を1文字だけ扱えるデータ型と覚えておきましょう。「boolean」は論理値を扱います。論理値は真偽値とも呼ばれていて、条件分岐の処理をする場合によく使われます。
1点注意があります、それは「String型は基本データ型ではない」という点です。 文字列は「オブジェクト」という形で扱うので、基本データ型ではありません。
ではそれぞれの基本データ型で変数を初期化し、コンソールに出力してみましょう。
[Main.java (main method)]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public static void main(String[] args) { byte b = -100; short s = 12345; int i = 1890247139; long l = 8329734981172391723L; float f = 9.987655f; double db = -3.230298304829038; char c = 'オ'; boolean bool = true; System.out.println(b); System.out.println(s); System.out.println(i); System.out.println(l); System.out.println(f); System.out.println(db); System.out.println(c); System.out.println(bool); } |
コンソール
-100
12345
1890247139
8329734981172391723
9.987655
-3.230298304829038
オ
true
各基本データ型の値が正常に出力されました。
今の段階では、無理してすべてのデータ型を覚える必要はありません。プログラム全般に言えることですが、いずれ「その時(必要になる)」が必ず来ます。それまでは「いろんな型があるんだな」程度で十分です。
Javaプログラムの基礎知識(全11記事)
├─Javaとは? Javaの基本概要をわかりやすく解説!
├─IDEとは?エクリプス環境を整えよう!
├─Javaの基本構造とコンパイルの流れを解説!
├─変数、リテラル、基本データ型について?
├─文字列の作成方法とStringのメソッドについて!
├─演算子について!
├─ifとswitchによる条件分岐を理解しよう!
├─ループ処理をおこなうfor文を理解しよう!
├─データをまとめて管理する配列とは?
├─メソッドとメソッドの定義について!
└─Javaに標準装備されている「ライブラリー」を活用しよう!