c++程序不会退出while循环
C++ Program will not exit while loop
当用户输入'Q'或'Q'退出程序时,我的c++程序不会退出下面的while循环。前两个选项工作得很好,并调用相应的函数,但'Quit The program'选项只是无限期地重新开始while循环。
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main()
{
char choice; //Varible to hold the user's choice.
while (choice != 'Q' || choice != 'q')
{
//Display the menu and retrieve the user's choice.
cout << "Please choose from one of the options below:nn";
cout << "A. Calculate the total amount of your bill [Enter A]n";
cout << "B. Calculate your BMI [ENTER B]n";
cout << "Q. Quit the program [Enter Q]nn";
cout << "Enter your choice: ";
cin >> choice;
//Either calculate the user's bill or their BMI based on their choice.
if (choice == 'A' || choice == 'a')
{
caLculateBillAmount();
}
else if (choice == 'B' || choice == 'b')
{
calculateBMI();
}
}
return 0;
}
您应该直接使用while (choice !='Q' && choice !='q') {...}
。是的,你应该初始化choice
为不同于Q和Q的值。就像char choice=0;
一样。
问问自己下面的结果是什么:
choice != 'Q' || choice != 'q'
如果选项是'Q',则选项不是'Q',因此测试的右半部分为真。
如果选项是'q',则选项不是'q',因此测试的左半部分为真。
你需要使用&&或者您可以简单地使用toupper(choice) != 'Q'.
相关文章:
- 我正在使用嵌套的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 循环中使用 pow() 函数 C++
- C++ 制作/命名不初始化的向量(在 while 循环中)
- std::getline没有在while循环中重新请求用户输入