为什么我的if-else语句会流向第三个呢?

时间:2015-07-06 18:57:45

标签: c++ loops if-statement

我试图了解这种控制语法是如何工作的。

注意:这是我的int.main函数的一部分:

while(cin >> Options){
    if(Options == 1){ //If I enter '1' here it will output: "aHi.Else."
        cout << "a";
    }else{
        cout << "hi";
    }
    if(Options == 2){ //If I enter '2' here it will output: "hiaElse."
        cout << "a";
    }else{
        cout <<"Hi.";
    }
    if(Options == 3){ //If I enter '3' here it will output: "hiHi.a"
        cout << "a";
    }else{
        cout << "Else." << endl;
    }
}

为什么要滴到else's和东西?语法有什么问题?我糊涂了? 如果不包含if,我应该如何使用多个else's语句?你能举个例子吗?

1 个答案:

答案 0 :(得分:6)

ifs不相互依赖,因此如果Options不是1,它将执行第一个if语句的else分支,即使Options为2或这同样适用于其他ifs。由于Options只能是1或2或3(或其他内容),因此您将始终获得其他else的{​​{1}}输出。

如果要将多个条件相互链接,可以链接ifelse。在下面的示例中,仅当if既不是1,也不是2,也不是3时,最后else才会执行。

Options

或使用while(cin >> Options){ if(Options == 1){ cout << "a"; } else if(Options == 2){ cout << "b"; } else if(Options == 3){ cout << "c"; } else{ cout << "Hello"; } } 声明:

switch