为什么在 C/C++ 中省略大括号被认为是不好的实践?


在 C++ 中,我们可以在 if-else 语句或任何循环之后省略大括号。如果我们不使用大括号,则 if-else 或循环后的只有一条语句会被认为属于该代码块。例如:

if(condition) {
   Line 1
   Line 2
}

if(condition)
Line 1
Line 2

在第一种情况下,Line1 和 Line2 都在 if 代码块中。但在第二种情况下,Line1 在 if 代码块中,但 Line2 不在 if 代码块中。因此,只有当 if-else 或循环下只有一条语句时,我们才能省略大括号。

有时为了调试目的,我们只是将一行代码注释掉。通过这种方式,我们可以在没有该语句的情况下检查输出结果的影响。这时,没有大括号的 if-else 或循环会造成一些麻烦。例如:

if(condition) {
   Line 1
}
Line2

if(condition)
Line 1
Line 2

在这两种情况下,Line1 都在 if 代码块中,但 Line2 不在 if 代码块中。因此,如果条件不满足,或者满足条件,Line2 将始终被执行。如果出于某些调试目的,情况如下所示,则可能会产生一些问题。

if(condition)
//Line 1
Line 2

如果 Line1 被注释掉,我们认为没问题,但在这种情况下,编译器认为 Line2 在 if 代码块中,但这是错误的。如果我们使用大括号,就不会出现问题。

更新于:2019年7月30日

734 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告