はじめに
プログラムとは、要はさまざまな「値」を計算し、必要に応じて「制御」していくもの、といってよいでしょう。「値」とそれを保管する「変数(へんすう)」、そして全体の流れを制御するための「制御構文」は、Javaの機能云々以前の「プログラミング言語として最低限理解しておくべきもの」と言えます。
今回は、これらをざっとまとめて説明していきます。正直いって、面白くはありません。が、「ここを通過しないと、その先の面白い世界へはたどり着けないのだ」と思って、我慢して覚えてください。ここを過ぎれば、次回からJavaらしいプログラミングに入れるはずですから。
対象読者
- Javaに興味はある、けれどプログラミング経験がない、という人。
- Javaに興味はある、けれど何から手をつければいいかわからない、という人。
- Javaに興味はない、でも何でもいいからプログラミングをしたい、という人。
これまでの記事
基本型とオブジェクト型
プログラミング言語では、さまざまな種類の「値」が使われます。整数や実数、テキストなどは、それぞれ値の示すものが異なりますね。こうした種類によって、扱い方が違ったりします。この種類のことを「型」あるいは「タイプ」と呼びます。
Javaでも、さまざまな種類(タイプ)の値が使われます。これらは大きく分けると2つのものに整理できます。1つは一般的な数字などの値を扱うための「基本型」と呼ばれるもの、もう1つはクラスを元に作成した「オブジェクト」というものを扱うための「オブジェクト型」です。
基本型は、全部で8種類の値からなります。といっても、まったく内容の異なるものが8つあるわけではありません。そのうちの4つは整数に関するもの、2つは実数に関するものになります。以下にざっと整理しましょう。
byte | 8bitの大きさの整数 |
short | 16bitの大きさの整数 |
int | 32bitの大きさの整数 |
long | 64bitの大きさの整数 |
整数の種類は全部で4つあります。それぞれ、値を保管する「大きさ」が違います。大きさとは、要するに「値を入れておくために、どれだけメモリを確保しているか」ということです。例えば、一番小さなbyteだと、8bitという大きさ(二進数で8桁分)しかないので、-128~127までの値しか収められません。一番大きいlongだと、その8倍の幅があるため、±約900京を超える範囲の値を扱うことができます。
整数の書き方はごく単純で、普通に数字を「123」というように書くだけです。このように書くと、Javaは「int型の整数の値」だと自動的に認識します。それ以外の種類の書き方も用意されていますが、当面は「整数はintを使うのが基本」と考えておけばよいでしょう(intは英語の整数"integer"の略です)。
float | 32bitの大きさの実数 |
double | 64bitの大きさの実数 |
コンピュータの世界では、実数は「浮動小数」と呼ばれる形で扱われています。これは、「X . XXXX かける 10のX乗」といった形で内部的に値を管理するものです。例えば、12300といった値は「1.23かける10の4乗」として扱います。こうすると「1.23」「4」という数字を記憶しておくだけで12300を表現できるわけです。ただし、この方法では、記憶する値の桁数があまり増えると、一部の値が省略されることがあります。実数は、「完全には値を記憶できない」ということです。
実数の値も、整数と同様に「1.23」というようにそのまま数字を記述すればOKです(小数点がある値は実数として扱われます)。この場合、値は自動的にdoubleの値として認識されます。floatの値の書き方も用意されていますが、当面は「実数はdoubleを使うのが基本」と考えていいでしょう。
char | 16itの大きさ、1文字の値だけを収められる |
文字の値は、1文字を保管するcharだけが用意されています。長いテキストを保管するための値はありません。ではどうするのか? と言うと、テキストを保管する「クラス」が用意されているので、これを利用します(後述します)。
文字の値は、文字の前後をシングルクォート記号(')でくくって書きます。'A'
といった具合です。charは1文字の値ですから、'ABC'
のように2文字以上を書いてはいけません。
String | テキストを収める(実は、基本型ではない) |
実は、テキストを収めるための基本型は用意されていません。というのも、テキストは、「オブジェクト」として用意されるからです。従って、基本型の中には含まれていないのです。Javaでは、テキストはすべて「String」という名前のクラスのオブジェクトとして扱われることになっています。
オブジェクトというとなんだか難しそうに思えるでしょうが、普通に使う分には、基本型の値とほとんど同じ感覚で利用できるようになっていますので、それほど心配は要りません。
テキストを値として記述する方法はちゃんと用意されています。ダブルクォート記号(")でテキストの両側をはさんで、"ABC"
というようにすればよいのです。
boolean | 8bitの大きさ、「true」「false」のいずれかを収められる |
真偽値とは、二者択一の値です。「正しいか否か」「条件が成立するか否か」というようなときに用いられます。値は、Javaに最初から用意されている「true」「false」という予約語を使います。それ以外の値は一切使えません。
真偽値は「どういうときに使うんだろう?」と疑問に思うかも知れません。これは、実際にプログラミングを始めるとイヤというほど登場しますから、今はあまり使い方など深く考えなくても大丈夫です。
変数の利用
これらの値は、そのまま値として記述するよりも「変数」に収めて利用することが多いでしょう。変数とは、その値を保管しておくためのものです。それぞれの変数には保管できる値の種類(タイプ)が決められており、それ以外のものは保管できません。変数は、次のような形で作成をします。
タイプ 変数名; タイプ 変数名 = 値;
int x; int y = 100; boolean f = true; char c = 'A'; String s = "Hello";
作成した変数は、そこに収めた値を取り出したり、あるいは別の値を再設定したりできます。これには「イコール」記号(=)を使います。「A = B;
」というように記述すると、Javaでは「右辺の値(B
)を左辺(A
)に設定する」という意味になります。
また、先ほど「テキストは基本型ではなく、Stringというオブジェクト型の値だ」といいましたが、実際の利用は基本型の値とほとんど同じ感覚で扱えることがわかるでしょう。String型の変数を用意したり、それにSringの値を設定したりといった基本的な操作は、基本型の場合とまったく同じなのですね。
この「値と変数」については、実際に何度かサンプルを書いて動かしてみれば、すぐに使い方が飲み込めます。簡単なサンプルを作成してみましょう。
public class Sample { public static void main(String[] args){ int x = 100; int y = 200; int z = x + y; z = z * 2; String msg = x + "と" + y + "の合計の2倍は、" + z; System.out.println(msg); } }

前回作成した「Sample.java」のソースコードをそのまま再利用しました。これを実行すると、「100と200の合計の2倍は、600」という数字が表示されます。これは、変数x
とy
を足し、それを2倍した結果になります。リストを見ると、変数x
,y
,z
に値が設定されていくのが分かることでしょう。変数は、一度登場したものは、以後、変数名の前にタイプ名を書く必要はありません。これはあくまで「最初に変数を用意するとき」に使うものです。
今回は、int
とString
の値を利用してみました。それぞれ、最初に変数が登場したところで「int x = 100;
」というように、その変数のタイプ名と変数名を指定して書いているのが分かります。またテキストは「String
というクラスのオブジェクトだ」といいましたが、これも「String msg = ~
」というようにして、タイプ名(この場合は使用する「クラス」の名前)と変数名を続けて記述子、その後にイコール記号をつけて値を設定していることが分かりますね。
ここでは変数を使い、「x + y
」「z * 2
」というように足し算掛け算をさせています。Javaでは、四則演算は「+-*/
」といった演算記号を使ってそのまま行うことができます。この他にも、割り算の余りを計算する「%
」といった演算記号もありますし、計算の優先順位を指定するための( )
記号も使えます。まぁ、ごく基本的な四則演算に関しては、普通の計算の感覚で式を書けば大体OKでしょう。
演算記号は、実は数字以外でも使うことができます。最後にテキストを出力している変数msg
を見てみましょう。「x + "と" + y + "の合計の2倍は、" + z
」が値に設定されていますね。数字とテキストの値を+
記号で足しています。実は「テキストを含む値を+
で足すと、それらの値をテキストとしてつなげる」という働きをします。例えば、"A" + "B"
とすれば、"AB"
というテキストになるわけです。この「テキストの足し算」は、とても重要なので覚えておきましょう。