パープルハット

※当サイトではGoogleアドセンス広告を利用しています

1.2 変数の使い方 -例題で学ぶC++



例題

アリスのテストの点数を日本語・英語・フランス語で表示するサイトあります。
点数は毎朝更新されるので、変数を使い保守性の高いコードを書いてください。
なお、今回は少々新しい概念を取り入れるので、例題についてはあまり気にせずOKです。

アリスの点数は96です。
Alice's score is 96.
Le score d'Alice est de 96.




変数とは?

さて、先ほどの問題は前回学んだstd::coutだけでも解くことはでき、main関数に以下のような記述をすればOKです。

std::cout << "アリスの点数は96です。" << std::endl;
std::cout << "Alice's score is 96." << std::endl;
std::cout << "Le score d'Alice est de 96." << std::endl;


しかし、これではアリスの点数が翌日45点に変わったとき、各行の数字を書き換える必要があるため3所書き換えなければなりません。
プログラムを書く上では変更が柔軟にできることが望ましいのです。
そのため、アリスの点数という箱を用意して各行はその箱の中身を表示するという処理に変えることで変更箇所を1か所に減らすということを今回はやります。
変数のメリット

プログラムにおいて、この箱にあたるものが変数です。
数学が得意な方は、x、yなどに相当するものという理解でもOKです。




変数の使い方

変数は箱のようなですが、プログラムで扱う場合はどの箱を扱っているかコンピュータに伝えなければなりません。
この箱の名前は変数名と呼ばれます。
ここで、アリスの点数の箱をxとする場合は、以下のように箱を用意します。
この箱を用意することを宣言と言います。

int x;


「intって何だよ」と思うかもしれませんが、後で解説するのでいったんはスルーしてください。
上記の処理により、アリスの点数をxという変数(箱)で用意することができました。
変数宣言

この状態では、まだ箱には何も値が入っていません。
値の入れ方は至ってシンプルで、以下のように数式のようにイコールで値を設定できます

x = 96;


こうすることで、xという箱に96を設定できました!
代入

ちなみに、次のように宣言と同時に値を設定することもできます。

int x = 96;





変数の表示

さて箱xを用意しましたが、この値を知るためには中身を表示する必要があります。
前回学んだ標準出力を使い、

std::cout << x

とすることで、中身を表示することができます。
変数の表示

ここで、注意することはxをダブルクォーテーション("")で囲んではいけないことです。
「""」で囲むと変数xではなく、xという文字と認識されてしまいます。
ダブルクォーテーションの有無による違い


ちなみに、例題のように変数と一緒に文字も表示することができ、

std::cout << "アリスの点数は" << x << "です。" << std::endl;

と「<<」で区切れば、以下のように表示されます。

アリスの点数は96です。





変数の型(intとは?)

さて、先ほど解説を省略したintについて解説していきます。
実は変数は宣言時に箱の中身に何を入れるか(例:文字、数字、画像など)というを指定する必要があり、intは数字を箱に入れる場合に使うものとなります。
同じ数字でも、表示できる数字の上限・下限で使う型が変化します。
代表的な型として次のようなものがありますが、当面はintを使うので覚えなくでも大丈夫です。

型名 意味 格納できるものの例
std::string 文字 "あいうえお"
unsighed short 0~65535の数値 4, 255, 1000など
double 小数 -1.5、2.5、100.0など





例題の解答例

最後に例題の解答を示します。
解答では、アリスの点数を変数xとしていますが、好きな文字を指定して大丈夫です。
また、文字の表示の仕方も結果が同じなら、多少変えても大丈夫なので、解答としています。


解答例

#include <iostream>
int main() {
	int x = 96;
	std::cout << "アリスの点数は" << x << "です。" << std::endl;
	std::cout << "Alice's score is " << x << "." << std::endl;
	std::cout << "Le score d'Alice est de " << x << "." << std::endl;
}