#include <iostream>
#include <string>
using namespace std;
int main()
{
char option='0';
do
{
cin >> option;
switch (option)
{
case '1':
cout << "testing 1\n";
break;
case '2':
cout << "testing 2\n";
break;
case '3':
cout << "Thank you, Have a nice day.\n";
break;
default:
cout << "Invalid option, Please enter option (1-3).";
}
}while (option != 3);
return 0;
}
我不知道为什么while循环是无限的。当我键入3
时,它应打印出Thank you, Have a nice day.
并退出循环while (option != 3)
。但是,似乎while循环不起作用。
答案 0 :(得分:6)
更改
while (option != 3);
到
while (option != '3');
3与'3'不同。一个是整数,另一个是字符。
答案 1 :(得分:2)
您的变量被声明为char,而wile循环将该值作为整数进行比较。
您应该将变量的签名更改为数字(整数,长整数,短整数等),或更改while循环条件以计算为字符值(选项!='3'),或者您甚至可以将选项变量与等效数值进行比较('0'= 48,'1'= 49 ...)。
答案 2 :(得分:1)
你的代码的问题是在while循环中检查是否选项!= 3,它正在比较char和int。你应该做的是选择!='3',就像这样。
#include <iostream>
#include <string>
using namespace std;
int main() {
char option;
do {
cin >> option;
switch (option) {
case '1':
cout << "testing 1\n";
break;
case '2':
cout << "testing 2\n";
break;
case '3':
cout << "Thank you, Have a nice day.\n";
break;
default:
cout << "Invalid option, Please enter option (1-3).";
}
} while (option != '3');
return 0;
}
答案 3 :(得分:1)
while (option != 3); //Here is your problem.
3 vs'3'不同。
你应该写while (option != '3');