虽然语句不起作用
While statement not working?
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int number;
float cost;
char beverage;
bool validBeverage;
cout << fixed << showpoint << setprecision(2);
do
{
cout << endl << endl;
cout << "Hot Beverage Menu" << endl << endl;
cout << "A: Coffee $1.00" << endl;
cout << "B: Tea $ .75" << endl;
cout << "C: Hot Chocolate $1.25" << endl;
cout << "D: Cappuccino $2.50" << endl <<endl << endl;
cout << "Enter the beverage A,B,C, or D you desire" << endl;
cout << "Enter E to exit the program" << endl << endl;
cin>>beverage;
while(beverage!='A'||beverage!='B'||beverage!='C'||beverage!='D'||beverage!='E'||beverage!='a'||beverage!='b'||beverage!='c'||
beverage!='d'||beverage!='e')
{
cout<<"Your selection is invalid please re-enter ";
cin>>beverage;
}
switch(beverage)
{
case 'a': validBeverage = true;
case 'A': validBeverage = true;
case 'b': validBeverage = true;
case 'B': validBeverage = true;
case 'c': validBeverage = true;
case 'C': validBeverage = true;
case 'd': validBeverage = true;
case 'D': validBeverage = true;
break;
default: validBeverage = false;
}
if (validBeverage == true)
{
cout << "How many cups would you like?" << endl;
cin>>number;
}
// Fill in the code to begin a switch statement
switch(beverage)
{
case 'a': cost = number * 1.0;
case 'A': cost = number * 1.0;
cout << "The total cost is $ " << cost << endl;
break;
case 'b': cost = number * 0.75;
case 'B': cost = number * 0.75;
cout<< "The total cost is $ " << cost << endl;
break;
case 'c': cost = number * 1.25;
case 'C': cost = number * 1.25;
cout << "The total cost is $ " << cost << endl;
break;
case 'd': cost = number * 2.50;
case 'D': cost = number * 2.50;
cout << "The total cost is $ " << cost << endl;
case 'e': cout << " Please come again" << endl;
case 'E': cout << " Please come again" << endl;
break;
default:cout << " You have enter an invalid selection"<<endl;
cout << " Try again please" << endl;
}
}while(beverage!='e'||beverage!='E');
}
我尝试运行这个程序,但它总是让我输入了一个无效的选择。我尝试修改 while 循环,但它不起作用;是 while 循环吗?也不确定我是否正确地在 do while 中编写了 while 语句。
以这个条件为例,同样的问题也存在于其他方面。
while (beverage!='e'||beverage!='E');
一个字符要么不等于'e'
,要么等于'e'
,在这种情况下它不等于'E'
,所以条件总是为真。
你想要的是合乎逻辑的,而且。
更改
while(beverage!='e'||beverage!='E'); // Condition becomes true always
自
while(beverage!='e'&& beverage!='E');
同样地,将所有||
替换为首先在循环条件表达式中&&
while(beverage!='A' && beverage!='B' &&beverage!='C'&& beverage!='D' && beverage!='E' && beverage!='a' && beverage!='b' && beverage!='c' &&
beverage!='d' && beverage!='e')
相关文章:
- 为什么我的 if else 语句不起作用并从数组中输出正确的索引?
- 默认标签显然在 switch 语句中不起作用
- C++ 中断语句不起作用
- 我的代码应该接受一个数字,并返回字母等级或"Grade is not valid"但 else 语句不起作用
- 使用 cin、if 语句和数组不起作用
- (C++) IF 语句似乎根本不起作用
- 为什么当我输入字符时,这个特定的 cin.get() 语句在C++中不起作用?
- QTranslator 在 if 语句中使用时不起作用
- 我的开关语句在C++中不起作用
- 切换语句不起作用 c++ 和 D:\c++ dev-c\Makefile.win 目标"abc.o"的配方失败
- C++ 默认值在开关语句中不起作用
- C++ SQLite3 准备的删除语句不起作用
- 如果语句在我的代码中不起作用
- 一个'case'在简单的'switch'语句中不起作用
- 我的程序在SCANF语句之后不起作用
- std::cin 语句不起作用 C++
- 为什么我的 if 语句不起作用
- C++ 递增在 If else 语句中不起作用
- if 语句在 for 循环中不起作用
- 我的 for 循环之后的代码不起作用,for 循环后的打印语句不会被打印