※前回の講座がまだの人はこちらから
【Java入門①】環境構築(Windows編)~初心者でも安心!基礎から学べるプログラミング講座~
【Java入門①】環境構築(Mac編)~初心者でも安心!基礎から学べるプログラミング講座~
変数とは?
変数の考え方
変数とは数字や文字といった”データ”を一時的に保存する、”箱”だと考えてください。
そして、この箱には以下のような機能があります。
1.箱にデータを保存する。箱の中のデータを取得する。
2.箱の中のデータを上書きする。
3.箱から箱へデータをコピーする。
上記が変数という”箱”の機能だと思ってください。
変数の種類
変数は、大きく分けて基本型(プリミティブ型)と参照型が存在します。基本型は上記説明の通り、箱と考えてください。参照型は、基本型ではできないことを出来る様に拡張した型になります。
例えば、文字列を扱える「String」という参照型があります。これは、基本型の「char」を拡張した型になります。「char」は、文字列を1文字しか値を入れることができませんが、「String」は1文字以上入れることが出来るので、一般的には「String」が使われることが多いです。
基本型の変数
数値型 | ||
整数型 | char | 16ビットUnicodeキャラクタデータ(一文字) |
byte | 8ビット符号付き整数 | |
short | 16ビット符号付き整数 | |
int | 32ビット符号付き整数 | |
long | 64ビット符号付き整数 | |
浮動小数点型 | float | 32ビット符号付き浮動小数点 |
double | 64ビット符号付き浮動小数点 | |
論理型 | ||
boolean | 真偽値 trueまたはfalse |
参照型の変数
クラス型 | String | 文字列 |
基本型はこの8種以外に存在しません。参照型はString以外も存在しますが、最初はStringさえ覚えていれば問題ありません。
変数の使い方
変数の作り方(宣言)
変数を使うためにはまず変数を作る必要があります。そして変数を作ることを一般的に”変数を宣言する”と、言います。
public class Variable {
public static void main (String[] args) {
//文字用の箱「str」を作成
String str;
//数値用の箱「i」を作成
int i;
}
}
String型の「str」という名前の変数と、int型の「i」という名前の変数を作成しました。
この様に、変数には自由に名前を付けることができ、その名前のことを変数名と言います。
変数の命名には各言語によってさまざまな規則があります。Javaでは特に「大文字小文字が区別される」「AからZ、aからz、0から9、アンダーバー(_)、$が使える」「数字は先頭に使えない」「予約語と呼ばれるJavaであらかじめ設定された語(char,intなど)」となっています。規則は少ないですが可能な限り、内容や用途とマッチする変数名を付けてください。
変数に値を登録(代入)
宣言した変数に値を登録することができます。変数の宣言のように、値の登録は”値を代入する”と、言います。
public class Variable {
public static void main (String[] args) {
//文字用の箱「str」を作成
String str;
//数値用の箱「i」を作成
int i;
//変数 c に abc を代入
str = "abc";
//変数 i に 27 を代入
i = 27;
//変数 c の値と変数 i の値を表示
System.out.println("変数 str の値は" + str + "です。");
System.out.println("変数 i の値は" + i + "です。");
}
}
これで文字列用の変数「str」に abc が、数値用の変数「i」に 27 が代入されました。最後の2行はカッコ内の値を表示させる指示になります。
<実行結果>
変数を書くと変数に代入されている値を表示し、ダブルクォーテーション(“”)で囲うと、中身を文字列として表示します。
また、「+」を使うことで文字列や数値を連結させて表示させます。
今回は変数の宣言と代入を分けて行いましたが、以下のように宣言と代入をまとめて行うこともできます。
String str = "abc";
int i = 27;
変数を宣言する段階で、代入する値が決まっているなら、この書き方が良いです。
変数の上書き
既に値が入っている変数へ新しく値を代入すると、変数の値が上書きされます。
public class Variable {
public static void main (String[] args) {
//文字用の箱「str」を作成
String str;
//数値用の箱「i」を作成
int i;
//変数 str に abcを代入
str = "abc";
//変数 i に 27 を代入
i = 27;
//変数 str を ABC に代入(上書きされる)
str = "ABC";
//変数 i を 14 に代入(上書きされる)
i = 14;
//変数 str の値と変数 i の値を表示
System.out.println("変数 str の値は" + str + "です。");
System.out.println("変数 i の値は" + i + "です。");
}
}
<実行結果>
この場合考え方として注意してほしことが「=」についてです。数式の等号のように左辺と右辺が等しいのではなく、左辺へ右辺の値を代入するのが「=」の役割になります。
変数同士の代入
今までは変数に数値や文字を直接代入していましたが、変数から変数へ代入もできます。
import java.util.Scanner;
public class Variable {
public static void main (String[] args) {
//文字用の箱「str」を作成
String str;
//数値用の箱「i」を作成
int i;
//新しい変数 str_2 に 27 を代入
String str_2 = "27";
//新しい変数 j にキーボードから入力された値を代入
System.out.println("数値を入力してください");
//入力機能の設置(入力した内容が変数jへ入る)
Scanner scan = new Scanner(System.in);
int j = scan.nextInt();
//変数 str と i に変数 str_2 と j の値を代入
str = str_2;
i = j;
//変数 c の値と変数 i の値を表示
System.out.println("変数 str の値は" + str + "です。");
System.out.println("変数 i の値は" + i + "です。");
}
}
新しく変数 j へ入れる値を入力するための、入力機能を設置しました。
(入力機能とは、Scannerの部分ですが、今は「この様に書けばキーボードから値を入力できる」くらいでいてください。)
今回は、72という数値を入力してみます。
<実行結果>
この場合注意するのはstrに27を代入するときの” ”を忘れないことです。もし” ”を忘れるとプログラムは27を数値として扱います。ただし数値27を代入しようとしているのは文字の変数strです。文字の変数には数値を代入できないのでエラーになります。
逆の場合として、変数iに変数str_2も代入できません。変数str_2には確かに27が代入されていますが、それは27という文字であってiに代入できる数値の27ではないからです。
まとめ
今回は変数について説明しましたが、変数は今後説明する項目においては必須知識で、実際にプログラムを組む時も最も使う機能と言っても過言ではありません。一度読んでわからなかったら繰り返し読んで、不安を残さないようにしてください。