如何构造多条件判断的if语句?日期有效性判断代码修正求助
修正日期有效性判断的if语句逻辑
你的代码逻辑错误源于运算符优先级:&&的优先级高于||,原代码实际等价于:
if ((day == 31 && month == 4) || month == 6 || month == 9 || month == 11) { validity = false; }
这会导致只要月份是6、9、11,无论日期是否为31,都会将validity设为false,不符合你“日期为31且月份是4/6/9/11时才标记无效”的需求。
正确的写法是将月份的所有判断用括号包裹,让day == 31和“月份属于4/6/9/11”这两个条件做逻辑与运算:
if (day == 31 && (month == 4 || month == 6 || month == 9 || month == 11)) { validity = false; }
内容的提问来源于stack exchange,提问作者Alex catchy
相关产品推荐
相关产品推荐

