See*_*ist 1 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;
}
}
Run Code Online (Sandbox Code Playgroud)
它为什么会滴到else's什么东西?语法有什么问题?我糊涂了?我如何使用多个if语句而不else's包括在内?你能给我举个例子吗?
在ifs不依赖于对方,所以如果Options是什么,但1,将执行第一else分支if语句,即使选项为2或3.这同样适用于其他IFS.由于Options只能是1或2或3(或其他),您将始终获得else其他ifs 的输出.
您可以链接else,if如果您想要将多个条件相互链接.在下面的示例中,else如果Options既不是1,也不是2,也不是3 ,则最后只执行.
while(cin >> Options){
if(Options == 1){
cout << "a";
}
else if(Options == 2){
cout << "b";
}
else if(Options == 3){
cout << "c";
}
else{
cout << "Hello";
}
}
Run Code Online (Sandbox Code Playgroud)
或使用switch声明:
while(cin >> Options){
switch(Options){
case 1:
cout << "a";
break;
case 2:
cout << "b";
break;
case 3:
cout << "c";
break;
default:
cout << "Hello";
}
}
Run Code Online (Sandbox Code Playgroud)