if条件需要逻辑帮助

时间:2012-12-11 14:34:26

标签: c++

我有3个变量持有值星期几(星期枚举),小时(0到23)和分钟(0到23),这3个变量只能容纳一个共同值N / A,其他值不同。 如果所有都是N / A或某些有效值,那么我必须执行特定的逻辑A.如果有人是NA而其他人都有效,那么我必须执行其他逻辑B

我使用if语句尝试了很多,却无法提出正确的解决方案。有人可以给我一个暗示吗?

所有值均为整数

bool weeklyCount = (dayofweek == weeklyHour) && (weeklyHour == weeklyMinute);

这对我不起作用。

2 个答案:

答案 0 :(得分:2)

在伪代码中:

if (dow == NA && hour == NA && minute == NA ||
    dow != NA && hour != NA && minute != NA) {
   // logic A
} else {
   // logic B
}

答案 1 :(得分:0)

struct yourtime
{
    enum Day
    {
        INVALID = -1,
        SUNDAY,
        MONDAY,
        TUESDAY,
        WEDNESDAY,
        THURSDAY,
        FRIDAY,
        SATURDAY
    };
    Day day;
    int hour;
    int minute;
    yourtime() : day(INVALID), hour(INVALID), minute(INVALID) { }
    bool isValid()
    {
        return (day != INVALID) && (hour != INVALID) && (minute != INVALID);
    }
};

int main()
{
    yourtime test;
    std::cout << test.isValid() << std::endl;
}

利用枚举与整数相同的事实。