実践編!詰まったときの対処法いろいろ
今回は実際にプログラムを実際に書いてみて、
困ったときの対処法をまとめようと思います!
筆者もプログラムを作るときにはいろいろな壁に何度もブチ当たりました。
しかし、プログラムで詰まるときはだいたいパターンがあります。
プログラムを考えることに脳ミソをフル活用しているときは、
うっかりな凡ミスに気づきにくいものです。
自分なりの解決手順を見つけて、
効率よく問題を解決していきましょう!
なお、今回の内容としては何とかして凡ミスを自力で検知できるようにするものであり、
全ての場合で役に立つわけではありません。
あくまで応急処置キットのようなものだと思ってください!
①誤字脱字
プログラムが動かない原因1位がこの誤字脱字だといっても過言では…
いや…過言かなぁ…。
ともかく、この誤字脱字は自分では気づかない場合が多く、
自身の中では正確にプログラムを書いたつもりでいるので、
原因不明のエラーと思ってしまうことが非常に多いです。
冷静に一字一字見ていれば、すぐにでも解決できるものですが、
熱中しているときは意外と気づきにくいものです。
最近ではvisual studioなんかで、
エラーを含むコードに波線を引いて教えてくれますが、
誤字脱字に気づかなければ、
「はぁ!?なんで今更それがわかんないの!?」
と、機械くんにキレてしまう原因になります。
一文字直せば済む話なのに気づかないばっかりに…。
コミュニケーション不足によるすれ違い…
…プログラムは思春期の初恋だった…?
②引数ミス
見直したけど誤字脱字はなし。
しかし、エラーメッセージは意味不明…。
そんな場合に考えられる第二のミスは、
「引数ミス」です。
夕飯(時間、品数、メインデッシュ)
↑こんな関数があったとします。
第一引数に夕飯の時間、
第二引数におかずの数、
第三引数にメインの品目が入るわけですね。
この関数が、
夕飯(19, 4, ハンバーグ)
↑こうやって入力されることを想定されて作られていたとします。
しかし誤って
夕飯(4, ハンバーグ, 19)と入力されてしまいました。
すると機械君は
「ん?晩御飯にしては朝4時は早すぎないか?ま、まあよしとするか」
「は?品目はハンバーグ個?ハンバーグ個って…何個…?(エラー出力)」
「え?今日のメイン19なの!?19ってどんな料理!?(エラー出力)」
と、混乱してしまいます。
理解できないままプログラムを実行するわけにはいかないので、
停止させるわけですね。
これも、使う側の理解の不足に原因があります。
どこの引数がどんな情報を参照するのか、
キチンと中身を理解してから使うといいでしょう。
③計算ミス
三つめは計算ミスです。
といっても機械くんは計算ミスをしませんから、
これは方法のミスですね。
例えば、
おかね =サイフ + ちょきん
という式をプログラムに書いたとします。
想定としては、サイフの中に入っているお金の金額と、
貯金額を足したものを変数「おかね」に入れたいわけですね。
しかし、実際にはこの「サイフ」は金額ではなく、
サイフのブランド名を入れる変数だったのです!
すると、
「ほんほん、二つの変数の合計をおかねとして扱えばええのね」
「えーと貯金は7000円と。はいはい了解」
「んで次はサイフ…へーサイフはエルメス使ってるのね。いいじゃん」
「…え、エルメスと貯金額足すってどゆこと?(エラー出力)」
こうなります。
プログラム書いた本人は、
サイフ変数はサイフの中身を参照する変数と誤認してしまったのですね。
こんな風に、実際には全く関係のないもの同士を同じように扱ってしまうことがうっかりミスでよくあります。
変数、関数の仕様を忘れないようにしてあげてくださいね。