
- 「プログラミングの変数ってなんだろう?」
- 「変数名はどうやって付ければ良いのかな?」
- 「変数の方や宣言の仕方を知りたい」
この記事ではそういった悩みを解決します。
この記事でわかること
- プログラミングの変数とは?
- 変数名の付け方のコツ
- 変数の種類・型とは?
- 変数の宣言と初期化のやり方
- 変数と定数の違い
- プログラミング言語による変数の違い
記事の信頼性
- エンジニア歴8年
- 自社製品の開発で現役プログラミング中
- C/C++/C#/Java/Pythonが得意開発現場で求められるスキルや知識も知っているので、プログラミング勉強中の人はもちろん、スキルアップしたい人向けの内容も解説することができます。
プログラミングを勉強すると必ず出てくるのが「変数」。
なんとなく分かりそうで、なんとなく分からない、どういったものかちゃんと理解したいと思っているあなた。
そもそもですが、[プログラミング 変数]などで調べてこの記事に辿り着いたあなたはプログラミングのセンスありです。
分からないことを分からないままにしない姿勢こそがエンジニアに必要な素質なので、自信を持ってください!
本記事ではプログラミングの基礎「変数」について解説します。
先に変数を理解するためのポイントをおさえておきましょう。
変数のポイント
- 変数とは何かを出したり入れたりするための箱
- 変数には数値や文字列を入れる
- 変数には変数名を付ける
- 変数を使うために宣言をする
さらに初心者向けの解説だけではなく、中級者以上を目指す人やスキルアップしたい人向けに、現役エンジニアのワンポイントアドバイスもお伝えします。
この記事を読むことでプログラミングの変数について理解が深まり、スキルアップすることができますよ。
プログラミングの変数とは?
プログラミングの変数とは何かを出したり入れたりするための箱のことです。
何を箱に入れるかというと「数値」や「文字列」です。
- 「数値」:1,2, 0.5, -32
- 「文字列」:abc、あいうえお
変数に数値や文字列を入れることを代入と言います。
プログラミングにおける変数とは、変数を使わずにプログラムを書くことはできないほど重要な要素です。
というのも、プログラミングは
- 数値や文字を変数に格納
- 変数を利用して計算や処理を行う
というのが基本的な流れだからです。
プログラミング言語による多少の違いはありますが、基本的な考え方はどの言語でも同じなので、しっかりと使えるようにしましょう。
変数の使い方
実際の変数の使い方を見てみましょう。
int age = 30; string name = "dona";
上記の例だと「age」と「name」が変数です。
ageという変数に30という数値を、nameという変数に"dona"という文字列を代入しています。
変数は計算したり表示したりすることができます。
printf("私の名前は%sです。", name); printf("年齢は%d歳です。", age); // 実行結果↓のように変数の中身が表示される > 私の名前はdonaです。 > 年齢は30歳です。
変数は途中で中身を変えられる
変数という名前の通り、何かを格納した後で中身を変えることができます。
int age = 30; // ↑ここまではageは30 age = 40; // ↓ここ以降はageは40が格納されている
ageという変数に最初は30を代入しましたが、その後に40を代入しています。
値を代入し直すと、直前まで格納されていた値は使えなくなり、新しく代入した値だけが使えるようになります。
変数名は後から読んで分かるよう詳しく付けるのがコツ
変数には名前を付ける必要があります。
変数の名前を変数名と言います。
変数名は何をつけても大丈夫なのですが、分かりやすい名前を付けるのが基本です。
int aaa = 10; int bakayarou = 30; // ↑あとから見たときに何を意味しているものか分からない。 int price = 2500; // ↑なにかの料金のことだと推測できる。
書いたコードはあなた以外の人がメンテナンスをするかもしれないので、最初の頃から分かりやすい名前を付ける癖をつけておきましょう。
さらに、ageやpriceという変数名ですが、実はこれもイマイチ。というのも、
- age:誰の年齢?
- price:何の値段?
といった疑問が湧きませんか?
なので、変数名は1つの単語だけではなく複数の単語を繋げることで、変数が何を意味しているかがより分かりやすくなります。
- dona_age : ドナの年齢かな?
- applePrice : リンゴの値段かな?
名前付けのルール
複数の単語を繋げて変数名を付けるとき、いくつかのルールというか派閥が存在します。
形式 | 説明 | 例 |
パスカル式 | 先頭を大文字にし、単語の区切りも大文字にする形式。変数名ではあまり使われない。 | ApplePrice |
キャメル式 | パスカル式の先頭を小文字から始める形式。変数名でよく使われる。ちなみにキャメル(camel)とはラクダのことで、ラクダのコブのように見えることから。 | applePrice |
スネーク式 | 単語の区切りをアンダーバー”_”で連結するもの。全て小文字。古くからある言語だとよく見かける。 | apple_price |
ハンガリアン記法 | 頭文字に変数の型を付ける方法。数値であればi、文字列であればsなど。 | iApplePrice |
なお、言語の規約上はどの命名規則でもOKで、必ずこうしなきゃダメということはありません。
ではどうすればよいかというと2つ方針があります。
1つ目は言語の公式ドキュメントに従うこと。
例えば、C#を作成しているMicrosoftではコーディング規約を規定しています。
>> C# のコーディング規則 (C# プログラミング ガイド)
2つ目はチームやプロジェクトの開発ルールに従うこと。
つまり大事なことは、独りよがりにならず周りに合わせることです。
「自分はこの方が分かりやすい!」と思っても、あなたが書いたコードは他の人が見る機会の方がずっと多いです。
1つのプロジェクトで統一感のないコードほど読みにくいものはありません。
変数の型
変数には種類があります。
変数の種類のことを型(データ型)といいます。
変数の型の例
- 整数型
- 浮動小数点
- 文字列型
- ブーリアン型
これまでにageやnameといった変数例を紹介していましたが、整数型と文字列でしたよね。
変数の型が違うと代入できない
変数は途中で中身を変えられると解説しましたが、あくまで同じ型のものだけです。
数値型で宣言したものに数値型以外のもの、文字列などを代入することはできません。
int price = 3000; price = 4000; // OK. 同じ数値型 price = "how much"; // NG. 数値型に文字列型の代入はできない
言語によっては異なる型のものも代入できることがありますが、変数名の命名規則と合いませんよね。
型を変えてしまう変更はやらないように癖づけておきましょう。
同じ整数型でも値の範囲が違う
一言で整数型といっても何種類かの方が存在し、それぞれ格納できる値の範囲が異なります。
代表的な変数の方と値の範囲を紹介します。
- byte: 0~255
- short: -32,768 ~ 32,767
- int: -2,147,483,648 ~ 2,147,483,647
- unsigined int: 0 ~ 4,294,967,295
- long: -2,147,483,648~2,147,483,647
ちなみに、型の範囲を超えてしまうことをオーバーフローと言います。
このあたりは2進数の世界を理解する必要がありますが、ここでは割愛します。興味がある方は調べてみてください。
豆知識:型が決まっていると処理速度が速くなる
型が決まっていると何がいいか?というと、パソコンの解釈が早くなることです。
- 型が決まっていないもの:これは何バイト確保したらよいのかな…?
- 型が決まっている:intだから4バイトだ。他のスペースも有効活用しよう!
そのため、型を宣言しない言語と比べると、
型付言語の実行速度 > 型なし言語の実行速度
となります。
C言語が速いと言われる理由の1つが型付言語だからですね。
変数は宣言と初期化がセット
変数を使うには宣言が必要です。
特に難しいことはなくて「○○型の変数を使うよ!」と書くだけです。
例えば、int型のageという変数を使うよと宣言する場合、すでにこれまでにいくつかの例を見てきたように
int age = 30;
変数と同時に代入することもできます。
これを初期化といいます。
【スキルアップ】初期化は癖づけておこう
変数を宣言だけして初期化しなかった場合、どんな値が入るのでしょう?
int age; // 初期化をしない printf("%d", age); // ↑何が表示されるかは分からない
これはプログラミング言語によって異なります。
整数型であれば0で初期化されるものもあれば、不定値となるものもあります。
ですので、現役エンジニア的おすすめは、言語によらず変数は初期化する癖をつけておくこと。
色んな言語を触るようになると細かい言語仕様を覚えられないことも多いです。
実際、初期化を忘れていて罠にハマり時間を消費してしまうということがあります。(実話)
https://twitter.com/donachiki1017/status/1346411182933073921?s=21
必ず初期化するように癖づけておけば困らないですよね。
変数と定数の違い
変数の中身を変更できないようにすることができます。
中身を変更できない変数のことを定数と呼びます。
int age = 30; const float PI = 3.14; // "const"を付けることで定数にできる age = 31; // OK PI = 3; // NG。定数は後から変更できない
例えば円周率とか消費税などの値が変わらないものを表現するときに使われます。
定数を上手く使うことで、間違って変更しようとしてしまったといったミスを事前に防ぐことができ、品質向上に繋がります。
言語による変数の違い
プログラミング言語によって、変数の宣言の仕方や使い方が多少異なります。
例えばC言語とPythonを比較してみると、
int age = 30; string name = "dona";
age = 30 name = "dona"
違いが分かりますか?
Pythonでは、型の宣言をしていなかったり、文末にセミコロン”;"がない、といった違いがあります。
ただ、変数は値や文字列を格納する箱という意味はどちらの言語でも変わりません。
1つの言語で変数を使えるようになると、他の言語に応用ができますよ。
さいごに
この記事ではプログラミングの変数について解説しました。
変数はどの言語でも使われるプログラミングの基礎なので、いつでも自然に使えるようになるといいですね。
最後に大事なことを1つ。
ここまで読めたあなたはプログラミングのセンスありです。
「よく分からない…」と途中で投げ出してしまう人が大半なので、自信を持ってください。
さらにスキルアップを目指すための方法を紹介します。
コードの書き方に迷う人におすすめの本
「どうやって変数名を付けたら読みやすいのだろう?」
プログラミングを勉強し始めると、変数名の付け方をはじめとするコードの書き方に悩みますよね。
そんな人におすすめの本が『リーダブルコード』です。
- きれいなコードが書きたい!
- プログラミングが上手くなりたい!
エンジニアを目指したい人はぜひ読んでおいた方が良い本です。
プログラミングスキルを磨きたい方
さらにプログラミングスキルを身につけたい方はプログラミングスクールの受講を考えてみるのもよいです。
教材も初心者向けに体系化され、分からないことは講師に質問し放題なので、スキルアップに繋がります。
無料体験を行なっているスクールもあるので、腕試しも兼ねて試しに受けてみるといいですよ。
無料体験を受けたとしても正式に受講をする必要はないので、分かりやすい教材だとかを体験してみて、自分に合いそうであれば受講してみるのが良いです。
無料体験が付いているプログラミングスクールは『【現役エンジニア厳選】おすすめのプログラミングスクール3社【無料体験あり】』の記事で解説しています。参考にしてみてください。
-
【2022年最新】おすすめプログラミングスクールランキング11選
プログラミングスクール選びで迷っている人 「プログラミングを勉強したいと思ってプログラミングスクールを調べてみたんだけど、たくさんありすぎてどれを選べば良いか分からない…。ダレカタスケテ...。」 & ...
続きを見る