Tar*_*rka 1 if-statement coding-style
我知道所有语言都不一样,但这是我一段时间都想知道的事情.
由于标题不是很清楚,是否存在技术差异
if (...) {
// ...
} else if (...) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
和
if (...) {
...
} else {
if (...) {
...
}
}
Run Code Online (Sandbox Code Playgroud)
我从实际角度知道,他们会做同样的事情,并且有可读性原因选择一个而不是另一个,例如第二个if与第一个没有直接关系.
但从技术角度来看,我不确定.编译器是否倾向于使用a做一些特殊的事情else if,或者它是否像处理单行一样处理,例如:
if (...)
singleLine();
Run Code Online (Sandbox Code Playgroud)
但看起来像:
else
if (...) // Counts as just a single line command
Run Code Online (Sandbox Code Playgroud)
希望能说清楚我在问什么.这两种方式之间是否存在技术差异,使用这种else { if风格有什么不利之处?
在C++中,两者完全相同.查看正式语法.在您给出的示例中,ifin else if实际上是一个新的代码块,就像您在问题中显示的那样,它类似于单行.不过,格式和代码布局更好else if.
粗略地说,语法定义:
<if structure> -> if <condition> <code blob> else <code blob>
<code blob> -> <if structure>
Run Code Online (Sandbox Code Playgroud)
所以,当你这样做
if (1) do(); else if (3) stuff(); else thing();`
Run Code Online (Sandbox Code Playgroud)
整件
if (3) stuff(); else thing();
Run Code Online (Sandbox Code Playgroud)
只是<code blob>第一个if/else结构中的else的.
| 归档时间: |
|
| 查看次数: |
327 次 |
| 最近记录: |