Как я могу написать оператор if с несколькими условиями?
Я пытаюсь написать оператор if, где, если a истинно и если либо (b или c) верно, то что-то сделать.
Я написал это, но я не уверен, что логика этого правильна.
if (critStatus == false && badStatus == true || pmBadStatus == true) {
//do something
}
В основном, если critStatus имеет значение false &&, если badstatus или pmbadstatus имеет значение true, он должен что-то делать.
3 ответа
Решение
(A&&B)||C или A&&(B||C) оцениваются не одинаково, порядок будет зависеть от того, где находятся скобки.
Ты имеешь в виду
if (!critStatus && (badStatus || pmBadStatus)) {
//do something
}
&&
имеет более высокий приоритет, чем ||
Таким образом, вы должны написать свое состояние следующим образом:
if (critStatus == false && (badStatus == true || pmBadStatus == true))
Смотрите правила приоритета Java здесь.
if (critStatus == false && (badStatus == true || pmBadStatus == true)) {
//do something
}
все, что вам нужно, это скобки. перед скобками утверждение было:
if ((a = true and b = true) OR c = true){