当前位置:  开发笔记 > 编程语言 > 正文

是单行if语句还是if语句没有括号不好的做法?

如何解决《是单行if语句还是if语句没有括号不好的做法?》经验,为你挑选了3个好方法。

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

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

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 */;

请注意,这完全是关于标准做法,并不一定有意义 - 它只是关于其他开发人员习惯看到的内容.

更重要的是,你的第二种形式并不是那么好,因为它使另一个程序员很容易犯这个错误:

if (condition)
  // code A
else
  // code B
  // code C (added by another programmer)

在这个例子中,另一个程序员添加了code C,但忘了将整个else块包装在大括号中.这会引起问题.您可以通过简单地将您的ifelse块包裹在大括号中来抵御这种情况.



1> Ron DeVera..:

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

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

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 */;

请注意,这完全是关于标准做法,并不一定有意义 - 它只是关于其他开发人员习惯看到的内容.

更重要的是,你的第二种形式并不是那么好,因为它使另一个程序员很容易犯这个错误:

if (condition)
  // code A
else
  // code B
  // code C (added by another programmer)

在这个例子中,另一个程序员添加了code C,但忘了将整个else块包装在大括号中.这会引起问题.您可以通过简单地将您的ifelse块包裹在大括号中来抵御这种情况.


我不同意第2点.只有一个非常可怕的程序员会做一些像没有括号添加代码C的东西.
@Beska或者只是一个非常糟糕的程序员,因为一个优秀的程序员在他们找不到结束支撑时会接受它.
@rlbond:或者是一个错误的优秀程序员.众所周知,这种情况会发生.

2> TofuBeer..:

我的偏好是否一致......所以:

if(...)
{
   statement 1;
   statement 2;
}
else
{
   statement 1;
   statement 2;
}

没有什么不同于:

if(...)
{
   statement 1;
}
else
{
   statement 1;
}

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

然而,其他人会查看我的代码并认为放入{和}是愚蠢的.他们有他们的理由,我有我的...我碰巧喜欢我的理由而不是我喜欢他们的原因:-)



3> jerebear..:

通常不可读的代码是一种不好的做法.单行更有效地输入并保存行号,但是从现在开始一年或者在扫描错误时再回到它,这将使它变得更加困难.

在我看来,是的,单行if语句是不好的做法.

计算机并不是真正关心(据我所知),但是你应该总是编写你的代码,它将由一个知道你住在哪里的连环杀手来维护.

可读!轻松自我辨别.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有