0

在 else 中使用 if else if 和 else 或 if else 和其他条件有什么区别吗?例如,

if (i == 5)
  printf("i is 5");
else if (i > 5)
  printf("i is greater than 5");
else
  printf("i is less than 5");

或者

if (i == 5)
  printf("i is 5");
else {
  if (i > 5)
    printf("i is greater than 5");
  else
    printf("i is less than 5");
}

执行上没有区别。两个片段都会给出相同的结果,但是我们应该使用后一个还是第一个,只是因为一个是更好的编程实践而另一个不是。

4

3 回答 3

6

else if使用vs之间没有功能上的区别else { if。这纯粹是一种风格决定。

我冒昧地说,尽管大多数开发人员更喜欢else if. 使用else { if会导致基于相同数据的逻辑不必要的缩进。

于 2013-03-08T17:46:33.667 回答
1

使用最清楚地表达情况的任何东西:

if (file_opened_successfully)
...
else
{
   if (file_does_not_exist)
   ...
   else if (file_permissions_not_set)
   ...
   else if (file_wrong_type)
   ...
   else
   ...
}

外部决策是严格的二元决策;要么我们可以打开文件,要么我们不能。如果我们可以打开文件,我们正常处理它,否则我们需要处理错误。

但是,我们无法打开文件有多种可能的原因,我们的错误处理取决于结果是哪种原因。所以这是一个多路分支,而不是严格的二进制分支。

于 2013-03-08T18:14:36.880 回答
0

如果条件与第一个 If 有关,我通常使用第一种方法,否则我会使用数字 2,但这只是您感觉舒适的方式。

于 2013-03-08T17:47:30.667 回答