我怎么能退出do while循环呢
How could I exit from do-while loop?
我有这些代码块,属于NIM减法游戏。我想实现的是,用户可以随心所欲地玩游戏。只要用户输入999程序就会退出,否则用户将一直玩到他/她输入999为止。这是我的代码块。我不确定我是否犯了逻辑错误,或者我需要添加一些特定的退出代码。感谢您的时间和关注。
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int total, n;
while(true){
cout << "Welcome to NIM. nEnter 999 to quit the game!nPick a starting total: ";
cin >> total;
if(total==999)
break;
while(true){
//pick best response and print results.
if ((total % 3) == 2)
{
total = total - 2;
cout << "I am subtracting 2." << endl;
}
else
{
total--;
cout << "I am subtracting 1." << endl;
}
cout << "New total is " << total << endl;
if (total == 0)
{
cout << "I win!" << endl;
break;
}
// Get user’s response; must be 1 or 2.
cout << "Enter num to subtract (1 or 2): ";
cin >> n;
while (n < 1 || n > 2)
{
cout << "Input must be 1 or 2." << endl;
cout << "Re-enter: ";
cin >> n;
}
total = total - n;
cout << "New total is " << total << endl;
if (total == 0)
{
cout << "You win!" << endl;
break;
}
}
}
return 0;
}
您正在循环中修改total
。如果total==999
,则在cin>>total
开始后测试,如果true
,则仅在break
之后测试,即
if(total==999)
break;
并用while(true){}
替换do-while
循环
在do while循环中,您试图将字符文字"999"与类型为int的变量total进行比较。
}while(total!='999');
尽管此代码是有效的,但其结果可能与您预期的不同。具有多个符号的字符文字的值是实现定义的。你必须写
} while ( total != 999 );
此外,如果玩家将输入999,您将开始与他一起玩,尽管您必须退出游戏。
所以在我看来,最好使用while循环。例如
while ( true )
{
cout << "Welcome to NIM. nEnter 999 to quit the game!nPick a starting total: ";
cin >> total;
if ( total == 999 ) break;
// ...
}
您必须在代码中进行三次更正才能使其正确
首先,你必须检查总数是否等于999,然后在从用户获得总数后打断你的do循环
第二个-你必须在你的第一个while循环中设置相同的条件
最后-而不是while(total!='999'),因为它是整数,所以你应该写while(total!=999)
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- while循环中while循环的时间复杂度是多少
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 擦除while循环中迭代的元素
- 为什么我不能在 while 循环中创建线程?
- 退出简单while循环时出现问题
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 即使没有满足他们的条件,我也无法通过一些 do-while 循环
- 嵌套While循环不起作用(C++问题)
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- 使用 GMP 的 while 循环出现问题
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 为什么在 while 循环中返回表达式不起作用
- 如何使用 do while 循环确定最高值和最低值
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 用于在 C++ 中使用 while 循环查找下一个素数的简单函数
- OpenCV QT,显示视频的帧(不使用while循环)
- 输入循环 while 函数
- c++中的循环(while)
- 为什么这段代码没有循环(while)