Java で配列やその類のものを for で走査する場合、index が欲しい場合か、拡張 for ループが使えない場合は
for (int i = 0; i < array.length; i++) { // something... }
のようにするのが一般的だと思う。
が、私は普段以下のように書いてる。
for (int i = array.length; 0 <= --i;) { // something... }
これはもちろん走査する場合、つまり処理順が関係ない場合に限る。
なんでこんな書き方をしているかと言うと、理由は 2 つある。
ループ回数の初期化が楽
条件はループ毎に実行されるので、そこであまり重い処理はしたくない。ループ回数の取得が重い場合は
for (int i = 0; i < list.size(); i++) { // something... }
とかやっちゃうと毎回 size() が呼ばれちゃってなんとなく気になる。回避策としては
for (int i = 0, n = list.size(); i < n; i++) { // something... }
って感じで、これはたまーに見かけるけど、私の使ってる方法だといちいち気にしなくて済む。
とまあこんな感じで
ものすごく細かい理由でこういう書き方をしている。
私はこの書き方にもう慣れちゃったのでいいんだけど、多分この書き方は一般的ではないと思うので、可読性は落ちるかなぁと思いつつ使ってるのだけど、どうなんでしょう。これパッと見てわかる? そこだけが気掛かり。
あ、ちなみに拡張 for ループが使える場合はそっち使います。やっぱ書いてて楽なので…。