こんにちは!
フリーランスエンジニアのかたやまです。
今回は、プログラミングの基本ルール「順次」のよくあるバグ(前編)を解説します。
バグを学ぶべき理由
よくあるバグを知っておくとプログラミングの間違いに気づきやすくなり、プログラムがうまく動かない原因の特定に役立ちます。
プログラミングをしているとき、バグの原因調査に丸一日かかることもあります。「作る」ための技術ももちろん大切ですが、「直す」ための技術も同じように大切です。
今回の「順次」では、前半と後半にわけて2つも間違いパターンを解説します。どちらも重要なので理解しておいてください。
よくある順番間違い
順次処理では、順番が間違っていることが原因でバグになっていることがよくあります。2つの例で見ていきましょう!
1.自動ドア

バグ
自動ドアの動きがおかしい
原因
原因を調査すると、自動ドアの順次処理が以下のように設定されていました。
- センサーが人を感知する
- とびらを閉める
- センサーで人がいないことを確認する
- とびらを開ける
2と4の処理順が間違っているので、これでは人が通ることができません。正しくは2が「とびらを開ける」、4が「とびらを閉める」です。
原因とセットで見ると簡単なことに聞こえると思いますが、実際のプログラミングはバグの情報だけで原因を調査しなければなりません。次の例では、バグの情報を見て原因を想像してみてください。
2.洗濯機

バグ
洗濯終了の音が鳴ったので、洗濯機を服が濡れたまま
原因
原因を調査すると、洗濯機の順次処理が以下のように設定されていました。
- スタートボタンが押されたらスタート
- 水を入れる
- 洗い
- すすぎ
- 終了の音で知らせる
- 脱水
この例では、5の「終了の音で知らせる」が間違っています。脱水まで終わってお知らせをしないと、洗濯が終わったと勘違いさせてしまいます。このように順番が1つ間違っているだけで、うまく動作しないことは頻繁にあります。
まとめ
今回の「順次のよくあるバグを学ぼう」は以上です。紹介した例では物足りなさがあったかもしれませんが、まず理解しておくことが大切です。
実際のプログラミングは手順が何百~何万とあったり、分岐処理や反復処理が複雑に組み合わされたりすることがほとんどです。その場合でも「順番が間違っていないかな?」と考えることができれば、問題解決に役立つと思います。
では、また次回!