C++ 如果(validBeverage==true)被(validBeverage)回复,它会改变代码的逻辑吗?如果是,为什么?

C++ 如果(validBeverage==true)被(validBeverage)回复,它会改变代码的逻辑吗?如果是,为什么?,c++,C++,更换线路 如果validBeverage==true 排队 如果有效平均 然后再次运行程序。在执行过程中是否存在任何差异 节目?为什么 我的家里学习C++,我上大学的朋友不断地给我布置作业,有人能给我解释一下这是怎么做的,因为我得到了同样的结果,我只想知道为什么? // #include <iostream> // #include <iomanip> // using namespace std; // int main() /

更换线路 如果validBeverage==true 排队 如果有效平均 然后再次运行程序。在执行过程中是否存在任何差异 节目?为什么

我的家里学习C++,我上大学的朋友不断地给我布置作业,有人能给我解释一下这是怎么做的,因为我得到了同样的结果,我只想知道为什么?
    // #include <iostream>
    // #include <iomanip>
    // using namespace std;

    // int main()
    // {
        // int number; //number of beverages
        // float cost; //cost of beverage
        // int beverage; //beverage type    
        // bool validBeverage;

        // cout << fixed << showpoint << setprecision(2);

        // do
        // {
            // cout << endl << endl;
            // cout << "Hot Beverage Menu" << endl << endl;
            // cout << "1: Coffee         $1.00" << endl;
            // cout << "2: Tea            $ .75" << endl;
            // cout << "3: Hot Chocolate  $1.25" << endl;
            // cout << "4: Cappuccino     $2.50" << endl << endl << endl;

            // cout << "Enter the beverage 1,2,3, or 4 you desire" << endl;
            // cout << "Enter 5 to exit the program" << endl << endl;
            // cin >> beverage;

            // switch (beverage)
            // {
            // case 1: validBeverage = true;
                // break;
            // case 2: validBeverage = true;
                // break;
            // case 3: validBeverage = true;
                // break;
            // case 4: validBeverage = true;
                // break;
            // default:validBeverage = false;
            // }

            // if (validBeverage == true)
            // {
                // cout << "How many cups would you like?" << endl;
                // cin >> number;
            // }


            // switch (beverage)
            // {
            // case 1: cost = number * 1.0;
                // cout << "The total cost is $ " << cost << endl;
                // break;
            // case 2: cost = number * .75;
                // cout << "The total cost is $ " << cost << endl;
                // break;
            // case 3: cost = number * 1.25;
                // cout << "The total cost is $ " << cost << endl;
                // break;
            // case 4: cost = number * 2.50;
                // cout << "The total cost is $ " << cost << endl;
                // break;
            // case 5: cout << "Thank you.  Please come again." << endl;
                // break;
            // default:cout << "You entered an invalid selection.\n";
                // cout << "Try again please" << endl;
            // }

        // } while (beverage != 5);

        // return 0;
    // }

因为每一行都被注释掉了,所以这段代码的含义没有区别。

因为validBeverage是一个bool,所以这两行完全相等:

if (validBeverage == true)

if (validBeverage)

选择使用哪一种是个人风格的问题。

如果条件为真,则满足条件。0、false和NULL被视为非真值。所有其他值都被认为是正确的

这就是代码的执行方式

if( validBeverage == true) 
变成

if( true/false) 
==运算符的返回值为true或false。因此validBeverage==true返回true或false 现在检查if子句。 因此,检查分为两个阶段

要更好地理解,请尝试以下方法

int condition = (validBeverage == true)
if(condition) { ... }
在下面的代码中

if(validBeverage)

检查是一个阶段。

代码逻辑的唯一变化是:

我希望你的朋友不要把你的解决方案当作他自己的解决方案来交。这将是对学术规范、一般道德和友谊的严重违反。请阅读您使用的标签:这不是一个基本程序。谢谢,我不与他分享我的工作,他只是给我他的作业。对基本的标签感到抱歉。他告诉我他正在学习C++基础知识,所以我只是想。无论如何,谢谢你澄清这一点!:我恨你先发现这一点:谢谢普拉纳夫我现在明白了,第一段很容易让人误解。它忽略了类型的概念,并假装表达式NULL不是。剩下的是好的。我试着简化它。他是一个拇指规则,而不是C++标准。在这种情况下,你通过去掉事实和增加神话来简化它: