Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.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
C++ 使用「;否则,如果;在c++;_C++_If Statement - Fatal编程技术网

C++ 使用「;否则,如果;在c++;

C++ 使用「;否则,如果;在c++;,c++,if-statement,C++,If Statement,我有两个问题- (一) code-fragment-1 if(){ } else if(){ //报表-1 } //报表-2 代码片段-2 if(<condition-statement>){ } else{ if(<condition-statement-2>){ //statements-1 } //statements-2 } if(){ } 否则{ if(){ //报表-1 } //报表-2 } 以上两段代码是否相同

我有两个问题- (一)

code-fragment-1
if(){
}
else if(){
//报表-1
}
//报表-2
代码片段-2

if(<condition-statement>){
}

else{
    if(<condition-statement-2>){
        //statements-1
    }
    //statements-2
}
if(){
}
否则{
if(){
//报表-1
}
//报表-2
}
以上两段代码是否相同


(二) 如果使用了s(C++),那么什么时候执行

唯一的区别是在示例1中,无论您检查的条件如何,您的语句2都将被执行。在示例2中,只有当
if
条件为false时,才会执行语句2。除此之外,它们基本上是一样的

否,在第一种情况下,仅当未验证
且仅当验证
时,才执行else块

在第二种情况下,如果未验证
,只需执行else块

在这种情况下,在没有任何//语句-2之前,它们是等效的

关于这个问题:什么时候使用elseif(在c++中)

基本上在所有其他语言相同的条件下使用​​ 有这种结构的。
else
作为相关if的替代执行,
else if
作为替代执行,但带有待验证的“附加”
if
,否则不执行。
因此它们在逻辑上是不等价的。

如果
的语法是

if(condition) statement;

{}
真正做的是允许您将多个语句组合在一起。在第二个示例中,
{}
s中只有一条语句(if),因此是的,这两个示例是相同的,除了//语句-2总是在运行时运行=true

在您的第一个代码示例中,语句2是无条件执行的。第二种是有条件的。不一样


“else-if”通常是首选,因为您可以无限期地插入或追加更多,或追加“else”,而对于另一种形式,您必须无休止地使用大括号才能获得相同的效果,并且您可能会改变语义,正如您在第二个示例中所做的那样。

switch语句总是优先于多个“else-if”分支,还是我得到了错误的答案idea@clockw0rk是,但前提是所有条件都测试同一个变量,并且是可以用作大小写标签的值,即不是字符串。
if(condition) statement;