この章では変数について説明します。
変数とはデータを入れることが出来る機械に似ています。
例えば携帯電話やフロッピーディスクにデータを記憶させると持ち運びが出来ますが、この携帯電話やフロッピーディスクに相当するものが変数です。
変数にデータを入れながら、プログラムを書いていくのが基本中の基本になります。
では以下の例で詳しく説明します。 変数は以下の構文で書きますが、これを変数の宣言と言います。
つまり、「これからこの変数を使いますよ」と宣言をしないと、変数は使うことができません。
それを以下の構文で行います。 この例では以下の箇所が変数です。 データ型についてはこの章の後半で説明しますので、今は変数名の名づけ方法について説明します。
変数には名前を付けなくてはいけないのですが、この例ではaが変数名です。
本に関係しているプログラムであればbookなどと変数名を付けます。
しかし、名前を付ければ何でもいいというのではなく、一定のルールがあります。 以下の表は予約語一覧です。
次に先ほど宣言をした変数にデータを入れる方法について説明します。
変数の宣言が終わった後には実際にデータを入れていきます。
例のの中に「=」と言う記号がありますが、これを代入演算子と言います。
数学の「=」とは関係ありません。
代入演算子は右辺のデータを左辺に入れる役割があります。 例で説明しますとaと言う変数に2と言うデータを入れるという意味です。
データを入れる行為を代入と言います。
次に変数の出力方法について説明します。 変数は普通の文字列と同じでを使って出力します。
この時、出力されるのは変数に入っているデータです。
この例は「値は2」が出力されます。
変数の代入と出力に関して注意してほしいことは以下のように同じ変数に複数のデータを代入してしまうと後から代入したデータで変数の値は上書きされますので注意してください。 結果は「値は2値は20」となりますが、整数のaに代入されていた2がの箇所で20に上書きされます。
次に「データ型名」について説明します。
先ほどの例の変数の前にintが付いていますが、これはデータ型を意味します。
変数を利用するためにはその変数がどのような型なのかを決めなくてはいけません。
つまり、変数を使用するには初めに『この変数は何型の変数です』と宣言しなければいけません。 この例では整数の2を変数aに入れているので、intを使用しています。 データ型については「データ型について知ろう」の章で詳しく説明します。
次に変数宣言の位置についてのC言語との違いについて説明します。
C 言語の関数内での変数の宣言位置はブロックの先頭でしなければいけませんでした。
C++の場合はそのような制約はなく、どこでもいつでも宣言することが可能です。
例えば以下の例はC言語のプログラムですが、変数を宣言する時には関数の先頭で宣言をしなくてはいけませんでした。
変数を先頭で宣言しないとエラーになります。 C++では以下のようにどこでも可能になります。 以下のように変数の宣言と同時にデータを入れることもできます。
この場合には1行で変数の宣言とデータの代入ができますので、プログラムがすっきりします。 これを「変数の初期化」と言います。
入れるデータのことを初期値と言います。
前の例ではstd::coutを使って変数に入っているデータを出力しました。
この例ではprintf関数を使用して変数のデータを出力しています。printf関数はC言語で使われているものですが、C++でも使えますので説明します。
整数型の数値を出力させるにはという変換指定子を使います。
変換指定子は例えばaの値をの箇所に置き換えて出力するために使います。 このように数値などのデータを文字列に変換して表示したい時に変換指定子を使います。 このテンプレートはダブルクォートで囲んでください。
そして、この中には文字列と変換指定子を自由に組み合わせて入れることができます。
テンプレートは「型」と言う意味なのでという型で出力しますよという意味です。 結果は「値は2」になります。
次の例ではprintfの中の変数を3つ同時に出力しています。 変数と「変換指定子」の対応関係は以下の通りです。
3つとは限らずいくらでも書くことができます。 テンプレートの一番左側の変換指定子と変数側の一番左の変数は対応関係にあります。
テンプレートの真ん中の変換指定子と変数側の真ん中の変数は対応関係にあります。
テンプレートの一番右の変換指定子と変数側の一番右の変数は対応関係にあります。
必ず変数と変換指定子の数を合わせてください。
補足ですが、printfは変換指定子を使わないで文字列を出力することも出来ます。 結果は「こんにちは」です。
printf関数についての詳細は「printfについてもっと知ろう」の章で詳しく説明します。
次はユーザーに文字列や数字などを入力させる方法について説明します。
では例をみてみましょう。 ユーザーが入力したデータを読み取るにはという構文を使用します。
「>>」は「入力演算子」と言います。 ユーザーが入力したデータはの中の変数nに入ります。
その後、で変数nを出力しています。
このように変数に入力データを入れることが出来ることを覚えておいてください。
では実際の画面で流れを追ってみましょう。
初めに「数値を入力」と出力して、ユーザーが入力するのを待ちます。 次に「123」を入力してエンターキーを押すと「数字は123」と出力されます。
では次の例を見てみましょう。 「cin >>a>>b>>c;」のように入力演算子を増やせば何個でも入力値を増やすことが出来ます。
この例では3回ユーザーに入力させています。
この入力させたものを3回掛けているのですが、それが以下の箇所です。 ユーザーに3回入力させているのですが、一回一回はエンターキーで区切ります。 もしくは以下のように半角スペースで区切ってもいいです。