InfernoC Ответов: 1

Как мне получить это утверждение if для правильной оценки


Я работаю над домашним заданием, включающим блоки try-catch в программу дня рождения. Хотя у меня есть большая его часть, я застрял на операторе if, который мне нужно использовать, чтобы программа правильно оценивала месяцы, которые имеют менее 31 дня.

if ((month = 4, 6, 9, 11) && (date > 30))
			throw invalidDay();


Всякий раз, когда я пытаюсь запустить его, он бросает в меня invalidDay (). Если я удалю его из программы, то программа работает find. Я огляделся вокруг, но ничего не смог найти, поэтому мне было интересно, может ли кто-нибудь мне помочь?

Что я уже пробовал:

Я пытался удалить код из программы, я пытался использовать оператор||, я пытался ограничить размер оператора if(т. е.: month = 4 & & amp; date > 30)

Patrice T

Неужели вы забыли устроить день инвалидов 30 и 31 февраля ?

1 Ответов

Рейтинг:
9

OriginalGriff

Вы этого не делаете по нескольким причинам:
1) Equals-это оператор присваивания: вы вообще не должны использовать его в операторе if, и вы не можете присвоить четыре значения одной переменной.
2) Даже если вы использовали оператор сравнения "==", вы не можете проверить его по четырем значениям, это не оператор "в этом списке", а в C++ его нет.
Попробуй:

if ((month == 4 || month == 6 || month == 9 || month == 11) && date > 30)
   {
   ...


InfernoC

Мой плохой, я не хотел использовать = когда я отправил вопрос, но ваш ответ определенно решил мою проблему, спасибо за помощь.

OriginalGriff

Это нормально - но вы должны быть точны, когда вы отправляете код (или даже псевдокод) или отправляете людей в неправильном направлении! :смеяться: