如何在C++中循环语句
我想循环一个问题,让它说“按Y继续”或“按N退出”,但我不知道怎么做。我试着做了一个while循环,但效果不好。代码如下:如何在C++中循环语句,c++,loops,C++,Loops,我想循环一个问题,让它说“按Y继续”或“按N退出”,但我不知道怎么做。我试着做了一个while循环,但效果不好。代码如下: cout << "press Y to play again or anything else to close: "; cin >> val; if (val != "Y" && val != "y") { spelaIgen = false; } } 我假设你在C++中使
cout << "press Y to play again or anything else to close: ";
cin >> val;
if (val != "Y" && val != "y")
{
spelaIgen = false;
}
}
我假设你在C++中使用标准命名空间。请尝试以下操作:
string val = "Y";
while (val == "Y")
{
cout << "press Y to play again or anything else to close: ";
cin >> val;
if (val != "J" && val != "j")
{
spelaIgen = false;
}
}
你可以这样做。初始化输入变量,然后将该变量用作while条件。继续迭代while循环,直到它们输入除“y”或“y”以外的内容
最适合您使用cases来选择Y或N。您所做的尝试会使Y以外的任何字符退出
bool correctVal = false;
char val;
while (!correctVal)
{
cout << "press Y to play again or N to close: ";
cin >> val;
switch(val)
{
case 'y':
case 'Y':
spelaIgen = false;
correctVal = true;
break;
case 'n':
case 'N':
spelaIgen = true;
correctVal = true;
break;
default:
cout << "\nInvalid entry!" << endl;
}
}
由于OP使用C++,所以使用STD::String、STD::Trime:STD::ToWoWER。没有理由恢复C风格的字符串。我稍后会尝试,但是有没有办法让您选择,按Y键重新播放,或按N键退出@劳伦斯·艾尔洛贝特。我建议使用std::transform和std::tolower将文本转换为所有小写形式,这样您只需要在val!=J通过将文本转换为全大写或全小写,您无需进行第二次比较。@ThomasMatthews好的,我是否只需键入std::transform?嗯,好的,我也会尝试一下,但正如我问LawrenceAiello的那样,有没有办法选择按Y再次播放或按N退出?当然,但是,如果他们既不输入y也不输入n,例如,如果他们输入a,你想做什么?看起来更好,或者有确切的原因感谢工作,你有关于如何使用案例和中断的指南吗?顺便说一句,这是了解开关使用的一个很好的资源,我把它看作是开关标识变量,case标识值,break将把您移出开关,默认值的使用几乎与else语句一样。
bool correctVal = false;
char val;
while (!correctVal)
{
cout << "press Y to play again or N to close: ";
cin >> val;
switch(val)
{
case 'y':
case 'Y':
spelaIgen = false;
correctVal = true;
break;
case 'n':
case 'N':
spelaIgen = true;
correctVal = true;
break;
default:
cout << "\nInvalid entry!" << endl;
}
}