C++ if 语句

标签 c++

我无法让我的 if 语句起作用。而且不管 周末 if 语句不断出现的数字。 我知道我之前问过类似的问题,但无论我尝试过什么,它都行不通

#include <iostream> 
#include <string>
using namespace std;

int main ()
{
 int day;
    cout << " Enter day of the week " << endl;
    cin >> day;
    switch (day)
{
    case 1 : 
    case 6 : 
    case 7 :
        cout << "weekend";
        break;

    case 2 : 
    case 4 :
        cout << "going to C++ Class";
        break;

    case 3 : 
    case 5 :
        cout << "studying for C++ Class";
        break;

    default :
        cout << "invalid day number";
    }

    if ( day == 1 || 6 || 7)
        cout << "weekend" << endl;
    else
        if (day == 2 || 4)
            cout << "Going to C++ Class";
        else 
            if (day == 2 || 5)
                cout << "studying for C++ Class";
            else 
                if ( day < 1 || day > 7)
                    cout << "bad day number";





    system("pause");
    return 0;

最佳答案

改变

if ( day == 1 || 6 || 7)

if ( day == 1 || day == 6 || day == 7)

对于一些类似的 if 条件也是如此。


你原来的测试条件if (day == 1 || 6 || 7)等同于if ((day == 1)||6||7),总是评估为 true,因为所有非零数字(在本例中为 67)都评估为 true。

关于C++ if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19262023/

相关文章:

c++ - #pragma unroll 语句可以用来清理编译器预评估的代码吗?

c++ - 无锁单写多读者列表实现细节

python - c++ 的 matplotlib 给出此错误 : 'PyObject_CallObject' : function does not take 3 arguments

c++ - 从 C++ 文件中读取和打印 UTF-8 符号

c++ - 将 char 缓冲区安全(独立于平台)到 std::string

C++ 隐式转换(有符号 + 无符号)

c++ - 没有模板参数列表就不能引用类模板

c++ - 检测元组中的引用类型

c++ - 引用未初始化的对象

c++ - 查找 vector 中的连续元素