Как я могу написать оператор 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){
Другие вопросы по тегам