java流程控制语句须严格遵循代码规范:大括号强制使用k&r风格,空格规范操作符与关键字,条件表达式应语义化,switch必须含default且判null,嵌套过深需提取方法或卫语句。

Java 流程控制语句本身(如 if、for、while、switch)不需“命名”,但它们的书写格式、括号位置、缩进方式、空格使用和逻辑组织,必须严格遵循主流代码规范,否则极易引发隐蔽 Bug 或降低团队协作效率。
大括号与换行:强制统一风格
无论语句体只有一行还是多行,都必须使用大括号,并采用 K&R 风格:
- 左大括号 { 紧跟条件/循环语句后,中间加一个空格,不换行
- 右大括号 } 单独一行,与对应语句起始列对齐
- 禁止省略大括号,哪怕只有一条赋值语句
✅ 正确写法:
if (user != null && user.isActive()) {
sendWelcomeEmail(user);
}
❌ 错误写法:
if (user != null) sendWelcomeEmail(user); // 易引发扩增逻辑时的缩进错误
空格与操作符:提升可读性细节
流程控制语句中多个位置需保留空格,避免字符粘连:
- if / for / while / switch 关键字后加一个空格,再接括号
- 括号内操作符两侧各留一个空格(如 a >= 5 && b != null)
- 逗号后加空格,冒号前后也加空格(三元运算符中尤其关键)
- 不要在小括号内部首尾加空格(如 for (int i = 0; ...),不是 for ( int i = 0; ... ))
变量与条件表达式:让逻辑自解释
流程控制的核心意图应由变量名和拆分后的表达式承载,而非挤在括号里:
- 把复杂判断提取为语义化布尔变量:
boolean hasValidPayment = order.isPaid() && !order.isRefunded();
if (hasValidPayment) { ... } - 避免魔法数字,用常量替代:
for (int retry = 0; retry - String 类型 switch 必须先判 null:
if (status == null) { throw new IllegalArgumentException("status must not be null"); }
switch (status) { ... }
switch 与嵌套结构:防御性写法不可少
switch 不仅要写 default,还要注意标签与嵌套层级的清晰性:
- default 分支必须存在,即使只写 throw new UnsupportedOperationException() 或日志
- 多层循环中需 break/continue 到外层时,才使用带标签的写法,且标签全大写、有意义(如 PROCESSING_LOOP:)
- 嵌套 if 超过两层,建议提取为独立方法或使用卫语句(early return)提前退出
不复杂但容易忽略。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











