PC Technique logo

小学校高学年から中学生を対象にした、無料公開中のC言語の入門講座です。

【7時間目】変数の初期化をしよう

前回、キーボードからの入力を受け取るコードを書きました。しかしそこで、間違った文字を入力した時の結果はおかしなものでした。

前回のエラーの秘密は「変数の初期化」にあります。変数は必ず初期化をしましょう。

変数の初期化とは?

変数の初期化をすることで、変数に最初に入る値を決めることができます。これをしておくことで、バグを減らすことができます。

初期化のやり方

変数を定義する方法は覚えていますか?例えばint型のhogeという名前の変数は、int hoge;で出来ましたよね。

初期化は、定義と同じタイミングで、一回だけ行います。

int hoge = 0;

これで、変数hogeを0で初期化したことになります。普通の代入のように、数字の動き方は「右から左」です。

前回のプログラムを修正

それでは、前回のプログラムの変数を初期化するように変更してみましょう

実行してみましょう。ちゃんと正しい値を入れれば

ちゃんとキーボード入力した値が反映されました。では、わざと文字を入力してみましょう

そうすると、初期化した値で計算されたことがわかります。

実はscanf関数は、もし指定された型以外が入力されたとか(他にも理由はありますが)の場合は、変数の中身には手をつけずにスルーします。よって、初期値のまま変わらずに計算を行うことになります。

ただ、時には「ユーザーが間違って入力したんだから、初期値で計算じゃなくて、エラーを表示するべき」という場合があります(こちらがほとんどですね)。エラーの表示にはif文を使う必要があります。が、その前に、まず変数を使った計算を学習しましょう。それから if文をやります。