Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coding style else…if/else-if之间有技术上的区别吗?_Coding Style_If Statement - Fatal编程技术网

Coding style else…if/else-if之间有技术上的区别吗?

Coding style else…if/else-if之间有技术上的区别吗?,coding-style,if-statement,Coding Style,If Statement,我知道这在所有语言中都是不一样的,但这是我想知道一段时间的事情 既然标题不是很清楚,那么两者之间有技术上的区别吗 if (...) { // ... } else if (...) { // ... } 及 我知道从实际的角度来看,他们也会做同样的事情,选择其中一个的可读性是有原因的,比如如果第二个如果与第一个没有直接关系 但从技术角度来看,我不确定。编译器是否倾向于使用else if执行一些特殊的操作,或者是否将其当作单行处理,例如: if (...) singleLine

我知道这在所有语言中都是不一样的,但这是我想知道一段时间的事情

既然标题不是很清楚,那么两者之间有技术上的区别吗

if (...) {
   // ...
} else if (...) {
   // ...
}

我知道从实际的角度来看,他们也会做同样的事情,选择其中一个的可读性是有原因的,比如如果第二个
如果
与第一个没有直接关系

但从技术角度来看,我不确定。编译器是否倾向于使用
else if
执行一些特殊的操作,或者是否将其当作单行处理,例如:

if (...)
   singleLine();
但是看起来:

else
   if (...) // Counts as just a single line command

希望这能说明我的问题。这两种方法在技术上有什么区别吗?使用
else有什么缺点吗在C++中,如果样式> 

< P>,这两个字完全相同。在示例中,你给出了<<代码> < <代码> > <代码>,否则,实际上是一个新的代码块,正如你在你的问题中所示,它类似于一条线。但是格式和代码布局比 >,如果,更好些。 该语法大致定义如下:

<if structure> -> if <condition> <code blob> else <code blob>
<code blob> -> <if structure>
整件

 if (3) stuff(); else thing();

只是第一个I/EL结构中的“其他代码”>代码BLB> <代码>。C++中,

< P>,完全相同。检查一下形式语法。在例子中,你给出了<代码> < <代码> > <代码>,如果是一个新的代码块,正如你在你的问题中所示,它类似于一条线。格式化和不过,如果使用
,代码布局会更好

该语法大致定义如下:

<if structure> -> if <condition> <code blob> else <code blob>
<code blob> -> <if structure>
整件

 if (3) stuff(); else thing();

只是第一个if/else结构中else的

我相信任何一个好的编译器都会为这两种形式生成相同的代码。我能想到的使用第二种形式的唯一原因是,您希望向else添加不受所附if控制的代码。

我相信任何好的编译器都会生成为两种形式编写相同的代码。我能想到的使用第二种形式的唯一原因是,您希望向else中添加不受随附if控制的代码。

这并不是真正的语言不可知论。C编译器可能足够聪明,可以为两个语句块生成相同的机器代码。但是,像e PHP可能会为第二个块生成更多的操作码(指令)。@mellowsoon是有道理的,我猜我误解了标记“编译器优化”的正确用法?WTF?说真的,人们,不是有十亿个参数对性能的影响至少是这个的十倍吗?!这不是真正的语言不可知论。C编译器可能足够聪明,可以为两个语句块生成相同的机器代码。但是像PHP这样的脚本语言可能会生成更多的操作代码(指令)对于第二个块,@mellowsoon是有意义的,我猜我在这里误解了标记的正确用法“编译器优化”?WTF?说真的,人们,不是有十亿个参数对性能的影响至少是这个的十倍吗?!?