我正在阅读我的 C++ 讲师的一些讲义,他写了以下内容:
- 使用缩进 // OK
- 永远不要依赖运算符优先级 - 始终使用括号 // OK
- 始终使用 { } 块 - 即使是单行 // 也不行,为什么 ???
- 比较左侧的 const 对象 // OK
- 对 >= 0 的变量使用无符号 // 好技巧
- 删除后将指针设置为 NULL - 双重删除保护 // 不错
我不清楚第三种技术:通过在 { ... }
中放置一行我会得到什么?
例如,拿这个奇怪的代码:
int j = 0;
for (int i = 0 ; i < 100 ; ++i)
{
if (i % 2 == 0)
{
j++;
}
}
并将其替换为:
int j = 0;
for (int i = 0 ; i < 100 ; ++i)
if (i % 2 == 0)
j++;
使用第一版有什么好处?
原文由 JAN 发布,翻译遵循 CC BY-SA 4.0 许可协议
当我们增加 --- 时,我们也尝试修改
i
j
:不好了!来自 Python,这看起来不错,但实际上并非如此,因为它相当于:
当然,这是一个愚蠢的错误,但即使是有经验的程序员也会犯。
ta.speot.is 的回答 中指出了 另一个很好的理由。
我能想到的 第三 个是嵌套的
if
的:现在,假设您现在想要
doSomethingElse()
当cond1
不满足(新功能)。所以:这显然是错误的,因为
else
与内部if
--- 相关联。编辑:由于这引起了一些关注,我将澄清我的观点。我正在回答的问题是:
我已经描述了。有一些好处。但是,IMO,“总是”规则并不总是适用。所以我不完全支持
我并不是说 总是 使用
{}
块。如果这是一个足够简单的条件和行为,请不要。如果您怀疑有人稍后可能会进来并更改您的代码以添加功能,请执行此操作。