首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >单行if语句或没有大括号的if语句是不好的做法吗?

单行if语句或没有大括号的if语句是不好的做法吗?
EN

Stack Overflow用户
提问于 2009-03-27 21:16:29
回答 8查看 16.7K关注 0票数 17
代码语言:javascript
复制
if (condition) { /* do something */ }
else { /* do something */ }

if (condition)
    /* do something */
else
    /* do something */

我被告知,第一个实例不是一个好主意。我不知道这是否真的是这种情况(或者对于第二种情况也是如此);它不是将数量缩短为type吗?还是因为它弄得一团糟?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-03-27 21:21:36

最佳实践是编写其他人可以轻松阅读和更新的代码。

您的第一个表单是有问题的,因为它不遵循大多数PHP开发人员习惯的表单:

代码语言:javascript
复制
if (condition) {
  // code
} else {
  // code
}

// ... or ...

if (condition)
{
  // code
}
else
{
  // code
}

// ... or ...

if (condition) { /* short code */ } else { /* short code */ }

// ... or ...

condition ? /* short code */ : /* short code */;

请注意,这完全是关于标准实践的,并不一定有意义-它只是关于其他开发人员所习惯看到的。

更重要的是,你的第二个表单不是很好,因为它很容易让另一个程序员犯这个错误:

代码语言:javascript
复制
if (condition)
  // code A
else
  // code B
  // code C (added by another programmer)

在本例中,另一个程序员添加了code C,但忘记了将整个else代码块用大括号括起来。这会带来问题。您可以通过简单地将ifelse块包装在大括号中来防止这种情况。

票数 36
EN

Stack Overflow用户

发布于 2009-03-27 21:23:16

如果是为了一致性我更喜欢...所以:

代码语言:javascript
复制
if(...)
{
   statement 1;
   statement 2;
}
else
{
   statement 1;
   statement 2;
}

与以下内容没有区别:

代码语言:javascript
复制
if(...)
{
   statement 1;
}
else
{
   statement 1;
}

所以我总是使用它们,因为它是一致的,而且它避免了后来忘记添加它们的问题。

然而,其他人会看着我的代码,认为把{和}放进去是愚蠢的。他们有他们的理由,我也有我的理由。我碰巧更喜欢我的理由而不是他们的理由:-)

票数 8
EN

Stack Overflow用户

发布于 2009-03-27 21:17:02

一般来说,不可读的代码是一种糟糕的做法。单行输入效率更高,并且可以节省行号,但是在一年后或在扫描bug时再使用它,会使它变得更加困难。

在我看来,是的,只有一行if语句是不好的做法。

计算机实际上并不关心(据我所知),但你应该总是像一个知道你住在哪里的连环杀手来维护你的代码一样编写代码。

可读性!很容易自我辨别。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/691476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档