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

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:変数と定数

この記事の練習問題で使用する知識:
丸暗記構文入力と出力の基本コメントの書き方変数と定数算術演算子文字列の操作import文

<<前の問題 問題集Top 次の問題>>

JAVAの「変数と定数」とは

この章ではJAVAにおける「変数と定数」の意味や使い方を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。



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

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

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

変数とは?

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

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

変数を定義するときには、変数の「型」も指定します。型とは、その変数にどのようなデータが入るかを決めるものです。

変数の宣言と使用例

JAVAでは、変数を宣言する際に以下のような構文を使用します:

int a = 10; // 整数型の変数aに10を代入
double b = 1.5; // 浮動小数点型の変数bに1.5を代入
String text = "Hello"; // 文字列型の変数textに"Hello"を代入

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

例えば、int a = 10;の行は、「整数型の変数aに10という値を代入する」という意味です。

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

定数とは?

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

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

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

定数の宣言と使用例

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

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

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

上記の例のように、finalをつけた変数には値の再代入ができません。

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

データ型の概要

変数や定数を理解する上では、データ型も重要です。

データ型は変数や定数に格納できる値の種類を指定します。JAVAには主に以下のようなデータ型があります:

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

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

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

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

まとめ

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

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

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

練習問題1-2:各データ型の変数と定数を扱うプログラムを作成しよう

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

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

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

この問題の要件

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

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

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

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

この問題を解くヒント

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

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

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

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

ヒント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; //この行をコメントでなくすとエラーが発生します。
    }
}

以上がこの問題の穴埋めコードです。

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



解答例と解説

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

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; //この行をコメントでなくすとエラーが発生します。
    }
}

正解コードの解説

このコードはJavaの基本的な要素である「変数」と「定数」の使い方を学ぶために設計されています。

ここでは各コードブロックがどのような意味を持ち、どのように動作するのかを説明します。

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

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における「変数」と「定数」の使い方について学びました。

変数はデータの値を自由に更新できる一方で、定数は一度設定すると変更できない特徴を持ちます。

プログラム中で役割の異なるデータを保存し、適切に出力する方法を理解することで、Javaの基本的な構造が掴めるでしょう。

練習を重ね、自由に使いこなせるようになることを目指してください!

<<前の問題 問題集Top 次の問題>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    JAVAテキスト&問題集へ戻る
    トップページへ戻る