2.変数とは
2-1 「変数とは何か」
はじめに
この章では、足し算や掛け算などの計算を行い、その結果を表示するプログラムを作っていきます。 その手始めとなる本章では、計算結果をしまっておくために必要な変数というものについて学習していきます。 動画のほうで詳しく説明するので最初はさらっと目を通してみてください!
演算結果の出力方法
単純な計算を行って、その結果を表示するプログラムを作ってみましょう。以下に示す「Sum1.java」は、 二つの整数値の57と32の和を求めて表示するプログラムです。
解説
System.printlnに続く、( )内の網かけ部に注目してみます。(・・・①の部分) 本プログラムは、数値を加算する式になっているので、57+32の演算結果は89となり、実行結果として、整数値89が表示されます。 89の実行結果の後に、System.out.printlnによる改行文字が入ります。このことをまとめた動画が下の動画になります。
文字列の数値と連結
どのような計算を行なっているのかを、式として表示するように改良してみましょう。
// 二つの整数値57と32の和を求めて表示
class Sum2 {
public static void main(String[] args) {
System.out.println("57 + 32 = " + (57 + 32));
}
}
57 + 32 = 89
解説
57や32のように、整数を表す定数のことを整数リテラルと言います。また、 2重引用符「"」で囲まれた文字の並びを文字列リテラルと呼びます。 今回の場合だと、("57 + 32 = " + (57 + 32)); オレンジ部分が整数リテラルとなり、青色部分が文字列リテラルとなります。 始めに、( )で囲まれた57 + 32の計算が行われます。( )で囲まれた演算は優先的に行われます。次に、計算結果で得られた「89」が文字列「"89"」に変換されます。 「文字列+数値」、「数値+文字列」の演算では、数値が文字列に変換されます。 また、ピンク色の「+」は文字列を連結するために用います。今回の場合だと、「"57 + 32 ="」 と57 + 32の計算結果である「"89"」が連結され、57 + 32 = 89と表示されます。 この処理により、今回の実行結果が得られます。
演算子とオペランド
先ほどのプログラムで足し算を行うときに「+」を使いました。プログラミングでは、演算を行う「+」や「-」のことをを演算子 と呼び、演算の対象となる式のことをオペランドと呼びます。2つのオペランドを持つものを、 2項演算子、3つのオペランドを持つものを3項演算子と呼びます。

また、よく利用される演算子を以下に示しておきますので覚えておきましょう。
x + y | xにyを加えた結果を生成。足し算のこと。 |
---|---|
x - y | xからyを減じた結果を生成。引き算のこと。 |
x * y | xにyを乗じた結果を生成。掛け算のこと。 |
---|---|
x / y | xをyで割った商を生成。x、yともに整数であれば小数点以下は切り捨て。 |
x % y | xをyで割った剰余を生成。割り算の余りを生成するということ。 |
変数について
変数とはデータを一時期的に記憶し、その値を出し入れできるもののことです。簡単に考えると、数値を格納するための箱のようなもので、 箱に値を入れておけば、その箱が存在する限り値が保持されることになります。 あまりイメージがわかないかもしれないので、まずは動画を見てみましょう。
上の動画を見て分かるように、変数とは、数値を格納するための【箱】のようなものです。 いったん値を入れておけば、その箱が存在する限り、値が保持され、値を書き換えるのも取り出すのも自由です。 プログラムの中に複数の箱があると、それが何のための箱なのかわからなくなってしまいます。そのため、箱には【名前】を与える必要があります。 そのため、変数を使うには、箱を作るとともに、それに名前を与える【宣言】が必要です。 今回は、xという名前を箱に与えているため、int x;と宣言しています。
重要1
変数を使うには変数の宣言(変数宣言)をして名前を与えよう。
重要2
ここまでのプログラムはint型の変数を使ってきましたが、Javaには多くの型が提供されています。 基本的な型の種類を載せておきますので確認しておきましょう。
byte | 1バイト整数 -128~127 |
---|---|
short | 短い整数 -32,768~32,767 |
int | 整数 -2,147,483,648~2,147,483,647 |
long | 長い整数 -9,233,372,036,854,755,808~9,233,372,036,854,755,807 |
型により表現できる数値の範囲が違うので自分が表したい数値の範囲によって使い分けます。
float | 単精度浮動小数点数 ±3.40282347E+38~±1.40239846E-45 |
---|---|
double | 倍精度浮動小数点数 ±1.79769313486231507E+38~±4.94065645841246544E-324 |
実数の内部は浮動小数点という形式で表現されます。3.14や13.5といった定数値は浮動小数点リテラルと呼ばれます。
char | charは1文字を表現するデータ型です。char型で文字を扱う際は、値をシングルクォーテーション「'」で囲います。 例:char x = 'a'; |
---|---|
String | 文字列 を扱う型。文字の並びを2重符号「"」で囲む。 例:String s = "ABC"; |
---|---|
代入演算子
先ほど宣言した変数には値を入れることができます。実際にどのように値を入れることができるのかを見てみましょう。
// 変数に値を代入して表示
class Variable {
public static void main(String[] args) {
int x; ・・・①
x = 63; ・・・②
System.out.println(x); ・・・③
}
}
63
解説
まずは・・・①で変数宣言をし、int型のxという名前の変数を作ります。次に、作成したxに63という値を代入します。 変数に値を入れているのが・・・②の部分です。右辺の値を左辺の変数に代入するための記号に【=】を使い、これを【代入演算子】と呼びます。 数学のように「xと63が等しい」という意味ではなく、xに63という値を代入しているという意味なので注意しましょう。 そして最後に・・・③でxの中に入っている値を表示をします。このことを下の動画でも確認しておきましょう。
重要
表示されるのは格納されているxの値であり、xという変数名が表示されるわけではないので注意しましょう。
重要2
演算子にはその直後に「=」をつけた演算子が用意されています。これらの演算子は 演算と代入という2つの働きを持つため複合代入演算子と呼ばれます。よく使うものを下の表で確認しておきましょう。
+= | 例:x += 5; これは、x = x + 20;と同じ。 |
---|---|
-= | 例:x -= 5; これは、x = x - 20;と同じ。 |
*= | 例:x *= 5; これは、x = x * 20;と同じ。 |
/= | 例:x /= 5; これは、x = x / 20;と同じ。 |
%= | 例:x %= 5; これは、x = x % 20;と同じ。 |
このようにすることで、行うべき演算を簡潔に表せ、左辺の変数名を書くのを1回にできます。