- 例1
- if文を繰り返している間にtime()関数の値が変わり(秒が進む)、考えてなかったif文の条件にヒットしたり最後のelseに行ってしまう可能性がある
- 例2
- 片側がABC==0の評価を通りABC=1に値をセットする前に、もう一方がABC==0の評価をする可能性がある
滅多に起こる条件ではないとは思いますが、0ではありません。滅多に起こらないが故、なかなか再現できず問題箇所の特定が難しくなります。
この2例の様なプログラムを危険だと感じられるかどうかが、プログラマーの適性として重要なんじゃないかと思うのですが、どうでしょうか?
[2009/12/24 追記] 余談ですが今まで出会った中で最強プログラマは、「入力された英単語テキストを単語に分割して、重複を除いて各単語を表示する」という課題に対し、動かないのは入力テキストが悪いと動くようなテキストを探し続けたI君ですw
Comments