C++ 如何使这段代码不总是默认,即使我输入了一个字符?
是的,我在同一个函数中将choice声明为字符变量,并将C++ 如何使这段代码不总是默认,即使我输入了一个字符?,c++,switch-statement,runtime-error,C++,Switch Statement,Runtime Error,是的,我在同一个函数中将choice声明为字符变量,并将flag声明为整数。不能您忘记了: do { cout事实上,你有两个打字错误: 您不设置标志,只将其与值进行比较(=而不是=) 您忘记了一个break语句 所以 案例“Y”: 案例“y”: { flag==1; cout Missingbreaks。一个好的交互式调试器是你的朋友。如果你在调试器中运行代码,一步一步地逐行执行,你会立即看到发生了什么。如果你告诉我们你使用的是什么操作系统,我或其他人可以为你推荐一个合适的调试器
flag
声明为整数。不能您忘记了:
do
{
cout事实上,你有两个打字错误:
您不设置标志
,只将其与值进行比较(=
而不是=
)
您忘记了一个break
语句
所以
案例“Y”:
案例“y”:
{
flag==1;
cout Missingbreak
s。一个好的交互式调试器是你的朋友。如果你在调试器中运行代码,一步一步地逐行执行,你会立即看到发生了什么。如果你告诉我们你使用的是什么操作系统,我或其他人可以为你推荐一个合适的调试器。我建议在发布任何调试器之前,至少付出一些努力事情。编译器警告选项是你的朋友。它们应该提醒你一些表达式,比如flag==1;
,它们没有使用过,而且没有副作用。它们甚至可以建议在这里或那里插入break;
。如果答案适合你,不要忘记点击answ下面的复选标记来接受它呃得分;)妈的,我很尴尬我不知道。非常感谢!
do
{
cout << "\nWould you like to play again? Enter Y for yes, and N for no."<<endl;
cin >> choice;
switch (choice)
{
case 'Y':
case 'y':
{
flag == 1;
cout << flag;
}
case 'N':
case 'n':
{
flag == 0;
cout << flag;
}
default:
{
flag == 2;
cout << "I did not understand that. Please enter a valid input!";
cout << flag;
}
}
} while (flag == 2 );
do
{
cout << "\nWould you like to play again? Enter Y for yes, and N for no."<<endl;
cin >> choice;
switch (choice)
{
case 'Y':
case 'y':
{
flag == 1;
cout << flag;
break;
}
case 'N':
case 'n':
{
flag == 0;
cout << flag;
break;
}
default:
{
flag == 2;
cout << "I did not understand that. Please enter a valid input!";
cout << flag
}
}
} while (flag == 2 );
case 'Y':
case 'y':
{
flag == 1;
cout << flag;
}
case 'N':
case 'n':
{
flag == 0;
cout << flag;
}
default:
{
flag == 2;
cout << "I did not understand that. Please enter a valid input!";
cout << flag
}
case 'Y':
case 'y':
flag = 1;
cout << flag;
break;
case 'N':
case 'n':
flag = 0;
cout << flag;
break;
default:
flag = 2;
cout << "I did not understand that. Please enter a valid input!";
cout << flag