【7時間目】変数の初期化をしよう
前回、キーボードからの入力を受け取るコードを書きました。しかしそこで、間違った文字を入力した時の結果はおかしなものでした。
前回のエラーの秘密は「変数の初期化」にあります。変数は必ず初期化をしましょう。
変数の初期化とは?
変数の初期化をすることで、変数に最初に入る値を決めることができます。これをしておくことで、バグを減らすことができます。
初期化のやり方
変数を定義する方法は覚えていますか?例えばint型のhogeという名前の変数は、int hoge;で出来ましたよね。
初期化は、定義と同じタイミングで、一回だけ行います。
int hoge = 0;
これで、変数hogeを0で初期化したことになります。普通の代入のように、数字の動き方は「右から左」です。
前回のプログラムを修正
それでは、前回のプログラムの変数を初期化するように変更してみましょう
実行してみましょう。ちゃんと正しい値を入れれば
ちゃんとキーボード入力した値が反映されました。では、わざと文字を入力してみましょう
そうすると、初期化した値で計算されたことがわかります。
実はscanf関数は、もし指定された型以外が入力されたとか(他にも理由はありますが)の場合は、変数の中身には手をつけずにスルーします。よって、初期値のまま変わらずに計算を行うことになります。
ただ、時には「ユーザーが間違って入力したんだから、初期値で計算じゃなくて、エラーを表示するべき」という場合があります(こちらがほとんどですね)。エラーの表示にはif文を使う必要があります。が、その前に、まず変数を使った計算を学習しましょう。それから if文をやります。