【Java】レッスン1-2:変数と定数を理解しよう

ながみえ

一つ前のページでは初めてのJavaコードを書いてみました。

今回は 変数と定数 について見ていきましょう。

Lesson1:基礎文法編
 ・Lesson1-1:JAVAの入り口|初めてコードを書いてみよう
 ・Lesson1-2:変数と定数を理解しよう ◁今回はココ
 ・Lesson1-3:四則演算をしよう
 ・Lesson1-4:文字列を操作しよう
 ・Lesson1-5:乱数を生成しよう
 ・確認問題1-☆1:ランダムパスワードを生成しよう
Lesson2:制御構造編
Lesson3:メソッド編
Lesson4:コレクション編
Lesson5:クラス

<<前のページ

学習記事一覧

次のページ>>

変数・定数・データ型の基本と使い方|初心者が押さえておくべきポイント

プログラミングにおいて、変数定数はデータを扱うための最も基本的な概念です。Javaでも数値や文字列などを格納して操作するために変数や定数が使われます。

変数は値を変更できるもので、定数は値を固定したまま扱いたいときに使用します。

データを効率的に管理できるように、この変数と定数の仕組みをしっかりと理解しましょう。

データ型とは?|int・double・Stringなど主要な型とその使い分け

変数や定数はプログラム内でデータを保存するために使われますが、データには種類があります。

プログラムがデータを受け取る際、それがどの種類のデータなのか(数値なのか、それとも文字列なのか)指定されなければ理解することができません。

そこで、変数や定数を定義する際には、その中に格納されるデータの種類 = データ型 も一緒に定義する必要があります。

Javaで使用されるデータ型は、主に以下の4種類があります。

  • 整数型(int, long):整数値を格納するための型
  • 浮動小数点型(float, double):小数点を含む値を格納するための型
  • 文字型(char):1文字だけを格納するための型
  • 文字列型(String):複数文字を扱うための型

それぞれのデータ型は用途に応じて使い分けられます。

例えば年齢のように「整数」が必要な場合はint型を使用し、温度や距離など「小数点」が必要な場合はdouble型やfloat型を使用します。

特に整数型のintと浮動小数点型のdouble、文字列型のStringの3つは極めて使用頻度が高いため、ここで確実に記憶しましょう。

変数とは何か?|宣言方法・初期化・使用例を初心者向けに解説

変数 とはプログラム内でデータを一時的に保管するための「箱」のようなものです。

変数を使うことで、数値や文字列などのデータを一時的に格納し、後でそのデータを変更したり利用したりすることができます。

変数を宣言するには、変数の名前とデータ型と同時に指定し、代入演算子「=」を使って値を代入します。

以下の例を見てみましょう。

int number = 10;		// 整数型の、numberという名前の変数を宣言し、「10」というデータを代入
double a = 1.5;			// 浮動小数点型の、aという名前の変数を宣言し、「1.5」というデータを代入
String text = "Hello";	// 文字列型の、textという名前の変数を宣言し、「Hello」というデータを代入

number = 20;			// 宣言済みの変数numberに「20」を再代入(上書き)
a = "Java";				// エラー発生!変数aは浮動小数点型のため文字列は代入できない

このように、変数の宣言には「データ型」「変数名」「値」の3つが必要です。

変数に代入する値は後で変更することができ、プログラムの流れに応じて内容を更新できるのが変数の特徴です。

なお、一度宣言された変数はデータ型が確定しているため、後から使用する際にはデータ型を書く必要はありません。

ただし、データ型が異なるデータを代入しようとするとエラーになります。是非上記のコードをVSCodeにコピーして実行し、6行目の「a = "Java";」の部分でエラーが発生することを確認して下さい。

定数とは何か?|変更できない値の宣言方法と使用例

定数 とは、一度値を代入すると変更できない変数のようなもので、プログラムの中で「変わらない値」を表現したいときに使います。

例えば円周率や特定の固定された設定値など、途中で値を変える必要がないものに使用します。

定数を使うことで、誤って値が変更されることを防ぎ、コードの信頼性を高めることができます。

定数を宣言するには、finalキーワード を使います。

finalを指定することでその変数は定数として扱われ、値の変更が禁止されます。

final int MAX_COUNT = 100;	// 整数型の定数MAX_COUNTを宣言し、100を代入
final double PI = 3.14159;	// 浮動小数点型の定数PIを宣言し、円周率3.14159を代入

MAX_COUNT = 99;				// エラー発生!定数に値の再代入はできない

MAX_COUNTPIの値は、プログラム中で一切変更されない固定値として使用されます。

なお、定数の名前はこのように全て大文字で宣言することが慣習となっています。

小文字で書いても使えますが、基本的には大文字を使用するようにしましょう。

まとめ|変数・定数・データ型の違いと使い分けを理解しよう

JAVAのプログラムにおいて変数や定数の使い分けは基本ですがとても重要です。

変数を使うことで、プログラム内で値を柔軟に扱えるようになり、定数を使うことでコードの信頼性を高めることができます。

初心者の方は、まず変数と定数の違いを理解し、実際にコードを書いてみて使い方に慣れていきましょう。

練習問題|変数・定数・データ型の理解を深めるプログラムを作成しよう

整数、小数、文字列を取り扱うJavaプログラムを作成してください。

このプログラムでは、整数型、小数型、文字列型の変数を宣言し、それぞれに値を代入して出力します。

また定数を宣言して、その値も出力してください。さらに、宣言した整数型の変数に新しい値を再代入し、その再代入後の値を出力することも目的とします。

この問題の要件

以下の要件に従ってコードを完成させてください。

  • 整数型の変数 number を宣言し、値 10 を代入すること。
  • 小数型の変数 decimalNumber を宣言し、値 1.5 を代入すること。
  • 文字列型の変数 greeting を宣言し、値 "こんにちは" を代入すること。
  • 定数 CONSTANT_NUMBER を宣言し、値 100 を設定すること。
  • 各変数と定数の値を System.out.println を使って出力すること。
  • 整数型の変数 number に新しい値 20 を再代入し、その再代入後の値を出力すること。
  • 定数 CONSTANT_NUMBER に新しい値 200 を再代入しようとし、エラーが出ることを確認すること。

ただし、以下のような実行結果となること。

整数型の変数の値: 10
小数型の変数の値: 1.5
文字列型の変数の値: こんにちは
定数の値: 100
再代入後の整数型の変数の値: 20

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

Q
ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)

1:クラスMainの宣言
□ メインメソッドの宣言
□ □ 整数型の変数numberを宣言し、10を代入
□ □ 小数型の変数decimalNumberを宣言し、1.5を代入
□ □ 文字列型の変数greetingを宣言し、「こんにちは」を代入
□ □ 定数CONSTANT_NUMBERを宣言し、100を設定
□ □ 「整数型の変数の値: 」と変数numberの値を出力
□ □ 「小数型の変数の値: 」と変数decimalNumberの値を出力
□ □ 「文字列型の変数の値: 」と変数greetingの値を出力
□ □ 「定数の値: 」と定数CONSTANT_NUMBERの値を出力
□ □ 変数numberに20を再代入
□ □ 「再代入後の整数型の変数の値: 」と変数numberの値を出力
□ □ 定数CONSTANT_NUMBERに200を再代入(この行はエラーを発生させます)

Q
ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

public class Main {
    public static void main(String[] args) {
        /* 【穴埋め問題1】
        ここで整数型の変数numberを宣言し、10を代入するコードを書いてください。
        */

        /* 【穴埋め問題2】
        ここで小数を扱う変数decimalNumberを宣言し、1.5を代入するコードを書いてください。
        */

        /* 【穴埋め問題3】
        ここで文字列型の変数greetingを宣言し、「こんにちは」を代入するコードを書いてください。
        */

        /* 【穴埋め問題4】
        ここで定数CONSTANT_NUMBERを宣言し、100を設定するコードを書いてください。
        */

        // 各変数と定数の値を出力
        System.out.print("整数型の変数の値: ");
        System.out.println(number);
        System.out.print("小数型の変数の値: ");
        System.out.println(decimalNumber);
        System.out.print("文字列型の変数の値: ");
        System.out.println(greeting);
        System.out.print("定数の値: ");
        System.out.println(CONSTANT_NUMBER);

        /* 【穴埋め問題5】
        ここで整数型の変数numberに20を再代入するコードを書いてください。
        */

        // 再代入後の整数型の変数の値を出力
        System.out.print("再代入後の整数型の変数の値: ");
        System.out.println(number);

        // 定数に値を再代入
        // ONSTANT_NUMBER = 200; //この行をコメントでなくすとエラーが発生します。
    }
}

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。

練習問題の解答と解説

この問題の正解コードとその解説は以下の通りです。

クリックして開いて確認してください。

Q
正解コード
public class Main {
    public static void main(String[] args) {
        // 整数型の変数を宣言し、値を代入
        int number = 10; // "number" という名前の変数に 10 を代入
        
        // 小数を扱う変数を宣言し、値を代入
        double decimalNumber = 1.5; // "decimalNumber" という変数に 1.5 を代入
        
        // 文字列型の変数を宣言し、値を代入
        String greeting = "こんにちは"; // "greeting" という変数に "こんにちは" を代入
        
        // 定数を宣言し、値を代入
        final int CONSTANT_NUMBER = 100; // "CONSTANT_NUMBER" という名前の定数に 100 を設定(finalを使用しているため変更不可)

        // 各変数と定数の値を出力
        System.out.print("整数型の変数の値: ");
        System.out.println(number);
        System.out.print("小数型の変数の値: ");
        System.out.println(decimalNumber);
        System.out.print("文字列型の変数の値: ");
        System.out.println(greeting);
        System.out.print("定数の値: ");
        System.out.println(CONSTANT_NUMBER);

        // 整数型の変数に値を再代入
        number = 20; // "number" に新しい値 20 を再代入

        // 再代入後の整数型の変数の値を出力
        System.out.print("再代入後の整数型の変数の値: ");
        System.out.println(number);

        // 定数に値を再代入
        // ONSTANT_NUMBER = 200; //この行をコメントでなくすとエラーが発生します。
    }
}
Q
正解コードの解説

コードをブロックごとに分割して解説します。

クラスとメインメソッドの宣言

public class Main {
    public static void main(String[] args) {

ここからJavaのプログラムが始まります。

public class Mainはクラスの宣言であり、public static void main(String[] args)はメインメソッドの宣言です。

メインメソッドはプログラムのエントリーポイントとなるもので、ここからコードが実行されます。

変数の宣言と初期化

int number = 10; 
double decimalNumber = 1.5; 
String greeting = "こんにちは";

この部分では3つの異なるデータ型の変数を宣言しています。変数はデータを保存するための入れ物です。

  • int number = 10; は整数を保存するための変数numberを宣言し、初期値として10を代入しています。
  • double decimalNumber = 1.5; は小数を保存するための変数decimalNumberを宣言し、初期値として1.5を代入しています。
  • String greeting = "こんにちは"; は文字列を保存するための変数greetingを宣言し、初期値として "こんにちは" を代入しています。

定数の宣言

final int CONSTANT_NUMBER = 100;

ここでは定数を宣言しています。finalキーワードを使用すると、その変数は定数になり、一度値を代入すると変更できません。

このコードではCONSTANT_NUMBERという名前の定数に100を設定しています。

定数はプログラム中で値を変えてはいけないデータに使用され、プログラムの誤動作を防ぐために役立ちます。

各変数と定数の値を出力

System.out.print("整数型の変数の値: ");
System.out.println(number);
System.out.print("小数型の変数の値: ");
System.out.println(decimalNumber);
System.out.print("文字列型の変数の値: ");
System.out.println(greeting);
System.out.print("定数の値: ");
System.out.println(CONSTANT_NUMBER);

ここではSystem.out.printSystem.out.printlnを使用して変数や定数の値を出力しています。

printlnは出力後に改行し、printは改行せずにそのまま次の内容を続けて出力します。

変数への再代入

number = 20;

この部分ではnumber変数に新たな値20を代入しています。

変数は再度値を入れ替えることができるため、異なるデータを同じ変数に保存できます。

再代入後の変数の値を出力

System.out.print("再代入後の整数型の変数の値: ");
System.out.println(number);

再代入後のnumber変数の値を出力しています。

この行により変数が再代入された新しい値であることが確認できます。

定数の再代入のエラー防止

// ONSTANT_NUMBER = 200;

このコード行はCONSTANT_NUMBERに新しい値を代入しようとしていますが、コメントアウトされています。

定数は変更不可のため、値を再代入するとエラーが発生します。

このようなエラーを実際に試してみることで、定数の仕組みを理解することができます。

もっと分かりやすい学習サイトにするために

この記事を読んで「ここが分かりにくかった」「ここが難しかった」等の意見を募集しています。

世界一わかりやすいJava学習サイトにするため、ぜひ 問い合わせフォーム からご意見下さい。

<<前のページ

学習記事一覧

次のページ>>

記事URLをコピーしました