こんにちは!
フリーランスエンジニアのかたやまです。
今回は、プログラミングの基本ルール「分岐」のよくあるバグ(後編)を解説します。
前編はこちら
よくある分岐不足
分岐処理では、分岐が不足していることが原因でバグになっていることがよくあります。2つの例で見ていきましょう!
1.クラス分け
バグ
12月生まれの人が所属するクラスがない
原因
原因を調査すると、生まれ月によって以下のようにクラス分けが設定されていました。
- もし1~3月生まれなら、クラスAへ
- もし4~6月生まれなら、クラスBへ
- もし7~9月生まれなら、クラスCへ
- もし10~11月生まれなら、クラスDへ
この例では、12月生まれの条件が考えられていないため、12月生まれの人が所属するクラスがありませんでした。このように条件が少しでも漏れていたら、取り残される人がでてきてしまいます。条件に漏れがないかどうか、しっかり見極めることが大切です。
2.プログラミング学習診断
バグ
プログラミングのおススメの学習方法を紹介してくれるアプリで、以下のように答えても自分に合う学習方法が提案されなかった
<答えた2つの質問>
・学びたいプログラミング言語がありますか? → 「ない」と回答
・無料で学びたいですか?有料でも良いですか? → 「有料」と回答
原因
原因を調査すると、回答によってオススメする提案方法が以下のように設定されていました。
- 「学びたいプログラミング言語がある」×「有料」の回答の人には、プログラミングスクールを提案する
- 「学びたいプログラミング言語がある」×「有料」の回答の人には、「ドットインストール」や「progate」を提案する
- 「学びたいプログラミング言語がない」×「無料」の回答の人には、「プログラミングの第一歩」を提案する
この例では、「学びたいプログラミング言語がない × 有料」の組み合が不足しているため、オススメが提案されないというバグになりました。このように条件が複数ある場合は、特に注意が必要です。適正診断や占いアプリなど、答えの組み合わせによって結果が変わるものは、条件に漏れがないようにしなければなりません。今回は2種類の条件の組み合わせでしたが、条件が3種類、4種類と増える場合もあります。種類が増えた場合はすべての組み合わせを書き出して、表形式にまとめることがオススメです。
まとめ
今回の「分岐のよくあるバグを学ぼう」は以上です。前編、後編と分けて解説しましたが、いかがだったでしょうか?
実際のプログラミングは手順が何百~何万とあったり、順次処理や反復処理が複雑に組み合わされたりすることがほとんどです。その場合でも「分岐に不足がないかな?」と考えることができれば、問題解決に役立つと思います。
では、また次回!