インクリメント/デクリメントのベストプラクティス集
実務で安全にインクリメント/デクリメントを使うためのベストプラクティス集を整理しました。
1. ループのカウンタは i++ に統一
for (int i = 0; i < n; i++)が最も読みやすく、慣例的に使われる。++iでも動作は同じだが、チーム開発では「見慣れた書き方」が重要。
2. 条件式に直接書かない
while (i++ < n)のように条件式に入れると挙動が分かりにくい。- 安全策: 条件とインクリメントは分けて書く。
while (i < n) {
// 処理
i++;
}
Java3. 配列アクセスは意図を明確に
arr[i++]→ 今の要素を使ってから次へarr[++i]→ 次の要素に進んでから使う
👉 初心者やチーム開発では「どちらを意図しているか」が一目で分かるようにコメントや変数分割を推奨。
4. 複雑な式に埋め込まない
int x = a++ + ++a + a--;のような書き方は可読性が低く、バグの温床。- ベストプラクティス: 1行ずつ分けて書く。
a++;
int x = a;
a++;
Java5. 小さい型(byte, short)では避ける
byte b = 127; b++;→ -128 に戻る(オーバーフロー)。- 実務では基本的に
intを使うのが安全。
6. 副作用を最小化する
if (arr[i++] == 100)のように「条件判定」と「インクリメント」を同時に行うと混乱しやすい。- ベストプラクティス: 先に変数に代入してから判定。
int value = arr[i];
i++;
if (value == 100) { ... }
Java7. コードレビューで統一ルールを決める
- 「ループは
i++を使う」 - 「条件式に ++/– を書かない」
- 「複雑な式に埋め込まない」
👉 チームでルールを共有しておくと、読みやすさと安全性が保たれる。
まとめ
- ループは i++ に統一
- 条件式や複雑な式に埋め込まない
- 配列アクセスは意図を明確に
- 小さい型では避ける
- チームでルールを決める
💡 実務では「動くコード」より「読みやすいコード」が評価されます。
インクリメント/デクリメントは便利ですが、“シンプルに書く”ことが最大の安全策です。
