悪if文と良if文

ループ終端以外のif文にはふた種類ある。悪if文と良if文だ。(さらにあげれば中立if文と本質的if文があるが数は少ない。)
良if文の例としては、ネットワークでエラーを起こした時リトライするためのif文や、 sin関数で定義域によってif文で分岐して異なる多項式を計算するときのそのif文などがある。これらは、物理層のエラーを回復したり、演算誤差をさけるなど、そのif文をふくむプログラムの下層のもつ不安定性を吸収して、プログラムのユーザ(多分ほかのプログラム)に対して首尾一貫して安定した振る舞いを提供する。
一方、悪if文は反対に下層の安定した振る舞いをダメにして、ユーザに対して首尾一貫しない振る舞いを提供する。

最上の日々:'if' statement considered harmful

悪if文はプログラマーのちょっとした親切(「こうしたら便利だろう」)によって生まれる…親切とは「特殊値に特別な意味を持たせたり、APIを増やせばいいところで面倒なので、ほかのAPIの使われていなかった値域に全く違った機能を持たせたりするとき」
…きわめてよくやります。手抜きです。申し訳ない