while语句不工作? [英] While statement not working?

查看:122
本文介绍了while语句不工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

#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循环?

I have tried to run this program but it always gives me that I have enter an invalid selection. I have tried modifying the while loop but it did not work;Is it the while loop?; Also in not sure if I have written the while statement in the do while correctly.

推荐答案

也可以把这个条件作为一个例子,同样的问题也在其他人。

Take this condition as an example, the same problem is in others as well.

while (beverage!='e'||beverage!='E');

字符不等于'e',或者它等于'e',在这种情况下它不等于'E'条件总是真的。

A character is either not equal to 'e', or it is equal to 'e', in which case it's not equal to 'E', so the condition is always true.

你想要的是逻辑和。

这篇关于while语句不工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆