プログラムの変数とは?初心者が変数を使いこなせるまでに必要なステップを丁寧に解説

アキ

独学でプログラミングを勉強しながらWeb制作会社で働き、プログラミングのエンジニア講師も勤めた経験がある、アキです。

  • プログラムの「変数」って何?
  • プログラムの「変数」って数学の変数とは何が違うの?
  • プログラムの「変数」で「=」はどういう意味で使われるの?「イコール」でないってホント?
  • プログラムの「変数」に数値の他に文字が入るってホント?

このような疑問に答えます。

「変数」と聞くと、数学の「x」「y」のような変数を思い浮かべるかもしれません。しかし、プログラムの「変数」とは、数学の変数と意味がことなります。

結論から言うと、変数とは下記のようなものです。

  • プログラムの「変数」とは、箱のような物で値を出し入れが出来るもの
  • 変数に出し入れする物は「値」と呼ばれる
  • 「値」とは、「数字」「文字列」「真偽値」などのこと
  • 変数を使うためには、宣言をして箱を用意する必要がある

変数とは?

「変数」と聞くと、数学の「x」「y」のような変数を思い浮かべるかもしれませんが、「プログラムの変数」と「数学の変数」は意味が全く異なります。

結論から言うとプログラムの変数には、下記のような特徴があります。

  • プログラムの「変数」とは、箱のような物で値を出し入れが出来るもの
  • 変数に出し入れする物は「値」と呼ばれる
  • 「値」とは、「数字」「文字列」「真偽値」などのこと
  • 変数を使うためには、宣言をして箱を用意する必要がある

ここで言う、数値、文字列、真偽値とは、下記のようなものを言います。

  • 数値 – 「1」「5」「100」
  • 文字列 – 「Hello」「こんにちわ」
  • 真偽値 – 「true」「false」

「変数」という箱に数値、文字列、真偽値等を出し入れ出来るようになります。

MEMO

変数に値を入れることを「代入」といいます。また、変数に入れる値には、先程の数値、文字列、真偽値等の種類があり、これを「型」といいます。

変数の使い方とは?

変数はメモリ上で値が保持され、プログラムが終了した時や変数が利用できなくなった時(スコープ外になった時)に消滅します。

変数を使うには、下記のステップを踏む必要があります。

  • 変数を宣言する
  • 変数に代入する
  • 変数から値を取り出して使う

このステップに従ってC言語で変数を使うと、このようになります。

int price;                    // 変数を宣言する
price = 110 + 220 + 330;     // 変数に代入する
printf("price: %d", price);    // 変数から値を取り出す

変数を宣言する

変数を使う最初のステップは、「変数を宣言する」ことです。変数を宣言とは、「今からこのような名前で変数をつかいますよー」とプログラムを書くことを言います。

変数を宣言するには、「どのような型で」「どんな名前の」変数を使うかを書きます。

int price;
  • int – 整数型で
  • pricepriceという名前の変数を使う

という意味になります。

変数に代入する

変数を宣言したあと、その名前を使って値を代入して使うことが出来るようになります。

代入には「=」をつかいます。=は「等しい」ではなく「代入」という意味です。

price = 110 + 220 + 330;

変数から値を取り出して使う

変数に格納した値を取り出してどう使うのかを定義します。値をコンソールから確認するには、printfなどの関数を使います。

printf("price: %d", price);

変数の型とは?

変数の型に、数値、文字列、真偽値、等があることをサラッと言いましたが、もっと詳しく解説していきます。

変数の型は「変数をどのように取り扱う事が出来るかをまとめた情報」の事です。この情報のおかげで、プログラムが正しく、効率よく情報を取り扱えます。

コンピュータでは、全ての情報を「0」「1」の組み合わせで処理をしています。それが、文字列なのか数字なのかの情報ももっていないと、どう処理をしていいのかわからず、処理することができないのです(例えば、文字をつなげるのか、数値の四則演算をするのか、等)。

もし、それが自動的に区別出来るようなプログラミング言語でも、「どういう処理をするのか型の区別をする」という余計な処理を行ってしまっているため、その分遅くなってしまいます。

変数の型には様々な種類があり、一般的なものは下記になります。

  • 整数型(Integer)
  • 浮動小数点(Float)
  • 論理型(Boolean)
  • 文字列(String)
  • 配列型(Array)
  • 連想配列(Hash)
  • インスタンス(Instance)
  • etc…

プログラミング言語によっては、使える型と使えない型が存在します。また、殆ど型の無いプログラミング言語も存在します。(「0」「1」でしかプログラムを書けないプログラミング言語やBrainfuck等)

変数のスコープを理解しよう

変数には「寿命」が存在します。これを「有効範囲」や「スコープ」と言ったりもします。スコープ外になると、変数が寿命を終え使えなくなります。 スコープはプログラムの書き方によってきまります。

C言語では{から}に囲まれた区間がスコープになります。Ruby言語では、「ローカル変数」「インスタンス変数」「クラス変数」「グローバル変数」という種類で分けられ、これがスコープになります。

スコープについては言語ごとに仕様が異なり、この記事だけでは解説できないので、詳しくはしません。

もし、変数を宣言しているのに代入や取り出しができない時、スコープ範囲を確認してみてください。

変数名は分かりやすい名前にしよう

変数を使うには、名前を付けないといけません。この名前を「変数名」といいます。そのまんまですね

変数名を適当につけていると、プログラムが見にくくなってくるので注意しましょう。変数に何が入っているのか、すぐにわかる変数名が良いです。

例えば、下記のように変数名が適当だと、どんな意味をもった値なのかわかりませんよね。

int hogehoge;
hogehoge = 100;

でも、下記のように変数名をpriceのようにすれば、一発で何を表しているのかがわかります。

int price;
price = 100;

どんな変数名を付けるのか迷ってしまったときは、下記のようなサイトを参考にすると、名付けやすいです。

参考 プログラミングでよく使う英単語のまとめQiita