はじめに
変数と定数を理解することの大切さ
プログラミングを始めたばかりのとき、「変数」と「定数」という言葉が出てきて混乱したことはありませんか?
- 「変数ってそもそも何を変えるの?」
- 「定数って難しそう、使わなくてもいいんじゃない?」
最初はそう思うかもしれません。
でも実は、この 「変数」と「定数」 を正しく使い分けられるようになると、コードがグッと読みやすく、そしてミスが減るんです。
たとえば料理をイメージしてください。
- 変数は「今日の食材」。毎回違うものを使えます。
- 定数は「塩の小さじ1杯」みたいに、レシピで決まっている動かせないルール。
この違いを理解することで、「ここは変えてOK」「ここは絶対変えちゃダメ」という線引きができるようになります。
結果として、コードの意味がハッキリして、自分でも後から読みやすいし、他の人にも伝わりやすくなるのです。
初心者がつまずきやすいポイント
プログラミングを始めたばかりの方が、変数と定数でよく混乱するポイントはいくつかあります。
- 「変数=自由に使えるメモ帳」だと思ってしまう
→ 確かに変数は自由に値を変えられますが、「途中で値が変わること」によって思わぬバグが生まれることがあります。 - 定数を「ただの特別な変数」と思ってしまう
→ 定数は「変えられない値」であり、役割は変数とは全く違います。税率や円周率のように「ずっと同じ数字」を扱うときに使うものです。 - 定数を使わず、全部変数で済ませてしまう
→ 最初はこれでも動くのですが、プログラムが大きくなるほど「ここは変えちゃダメな値」が変わってしまい、エラーや不具合の原因になります。
つまり、変数と定数の違いを意識しないと、プログラムが 「自分でも意味がわからなくなる」 という状態に陥りやすいのです。
変数とは?
変数の基本概念
変数は、プログラムの中で 「値を入れておく箱」 のようなものです。
箱には名前を付けることができて、その名前を使えば中身を自由に出し入れできます。
たとえば、次のように書くとします。
int age = 20;
この場合、age
という名前の箱に「20」という数値を入れた、というイメージです。
あとから中身を入れ替えることもできます。
age = 25; // 変数ageの中身を25に変更
使い方の例
- 買い物カゴの合計金額
- ゲームのスコア
- 入力フォームに入力された名前
こういった「状況によって変わるもの」を扱うときに変数を使います。
よくある誤解:「変数はずっと同じ値を持つ?」
初心者の方がよく勘違いするのは、「変数に入れた値はずっと固定される」と思ってしまうことです。
でも実際は、変数は上書きできるので、入れた値がずっと同じとは限りません。
定数とは?
final を使った定数の定義方法
定数とは、一度決めたら変えられない値 のことです。
Javaでは final
というキーワードを使って定数を定義します。
final double PI = 3.14159;
この例では、PI
という名前に「3.14159」を入れました。final
がついているので、あとから PI = 3.14;
のように書き換えようとするとエラーになります。
定数を使うメリット
定数を使うと、次のようなメリットがあります。
- わかりやすい
→3.14159
と書くよりもPI
と書いた方が「円周率のことだ」とすぐにわかります。 - 安全に使える
→ 値を間違って変更できないので、プログラムのバグを防げます。 - 管理しやすい
→ もし消費税率を定数にしておけば、税率が変わったときに定義している場所だけ直せばよく、あちこちのコードを探して修正する必要がありません。
実際の例
- 円周率
PI
- 消費税率
TAX_RATE
- 最大スコア
MAX_SCORE
このように、「変わらない値」を扱うときに定数を使うのが基本です。
変数と定数の違いを比較
値を変更できるかどうか
- 変数 … 値をあとから自由に変更できる
- 定数 … 一度決めたら変更できない
「箱のフタが開いていて、中身を入れ替えられるかどうか」の違いだと考えるとわかりやすいです。
命名規則
Javaの世界では、変数と定数の名前の付け方にも「お約束」があります。
- 変数 … 小文字で始める(例:
age
,score
) - 定数 … 大文字+アンダースコアで書く(例:
PI
,TAX_RATE
)
こうして区別しておくと、コードを読んだ人が「これは変えていい値なのか、ダメなのか」をすぐに判断できます。
使い分けの目安
- 変数を使うとき
→ ユーザーの入力やゲームのスコアのように「状況で変わる値」 - 定数を使うとき
→ 円周率、消費税率、最大人数のように「ルールとして決まっている値」
初心者がやりがちな間違い
1. final をつけ忘れてしまう
本当は「定数」として使いたいのに、final
を書き忘れて「ただの変数」になってしまうことがあります。
すると、後から値が書き換えられてしまい、思わぬエラーや計算間違いにつながります。
2. 定数の名前を小文字で書いてしまう
定数は「大文字+アンダースコア」で書くのが慣例ですが、初心者のうちは普通に小文字で書いてしまうことが多いです。
final double pi = 3.14159; // 小文字だと変数っぽく見えてしまう
この場合でも動作はしますが、他の人が読んだときに「これ定数?」とわかりにくいので注意しましょう。
3. 値を再代入しようとしてエラーになる
定数は一度決めたら変更できません。
なのに、間違えて次のように書くとエラーになります。
final int MAX_SCORE = 100;
MAX_SCORE = 120; // エラー!定数は変更できない
これはJavaが「変えちゃダメだよ」と教えてくれているサインです。
実践例:変数と定数を使い分けてみよう
ここまで「変数」と「定数」の違いを学んできました。
実際にどんなときに使い分けるのか、サンプルコードを見てみましょう。
例:商品価格と消費税率を計算するプログラム
public class PriceCalculator {
public static void main(String[] args) {
int price = 1000; // 商品価格(変数)
final double TAX_RATE = 0.1; // 消費税率(定数)
double total = price + (price * TAX_RATE);
System.out.println("合計金額は " + total + " 円です。");
}
}
ポイント解説
price
は商品の値段なので、その時々で変わります。だから 変数 を使います。TAX_RATE
は消費税率。基本的に途中で勝手に変わることはありません。だから 定数 を使います。
実行結果(例)
合計金額は 1100.0 円です。
このように「どこは変わる?」「どこは絶対に変えない?」と考えると、自然に変数と定数を使い分けられるようになります。
まとめ
今回は「変数」と「定数」の違いについて解説しました。
- 変数 … 値を自由に入れ替えられる「箱」
- 定数 … 一度決めたら変えられない「決まりごと」
変数はユーザーの入力やスコアのように 状況で変わるもの に使い、
定数は円周率や消費税率のように 変わらないルール に使います。
特に初心者がやりがちなのは、定数を使わずに全部変数で済ませてしまうこと。
小さなプログラムなら動きますが、プログラムが大きくなると「ここは変えちゃダメなのに変わった!」というトラブルが増えてしまいます。
これからプログラミングを学んでいく中で、
「この値は本当に変わるのか?それとも変えちゃいけないのか?」
と考えながらコードを書くと、よりわかりやすく安全なプログラムを作れるようになります。
PR:おすすめ教材
スッキリわかるJava入門 第4版:初心者向けの丁寧な解説書。
私が最初にプログラミングの勉強を始めたときに使用していた一冊です。
周りの人たちに聞いてもこのシリーズを最初の一冊として選んだ人が多かった印象があります。
コメント