例えば

for(int i = 0; i < a.length; ++i) //forの書式は例によってひとまず置いておく
{
 if(a[i] == 探しているもの)
 {
  r = a[i];
  break;
 }
}

で、探しているものが見つからなかった時に実行したいことがある。
i == a.length で判断する方法も考えられるが、列挙型などでは i が有効範囲を超えることができないので却下。
使えそうな方法は

・フラグ変数を用いる(流れ制御のために変数を増やすのは嫌だ)
・ラベル付きbreak(トリッキー?)
・Pythonのようにforにelseを設ける(一番正当な解法と思われるが言語仕様が増える)

・見つかった時例外をthrow

「見つからなかった時」こそ例外を投げたいと思われるのに…
それでも見つかった時(むしろこっちが正常な流れと思われる)に例外を投げろと?