Как использовать или в условном выражении Java, например, если (a или b! = C) - PullRequest
0 голосов
/ 28 сентября 2019

Я хочу сказать "если a или b! = C", но я не могу использовать "или".

Я пытался использовать ||, но получаю ошибку:

bad operand types for binary operator '||'
    if (p1 || p2 != 1)
           ^
  first type:  int
  second type: boolean
1 error

Я понимаю, что использование || для логического или чего-то еще, но я не знаю, что еще делать.

import java.lang.Math;

public class Example{

  public static void main(String[] args){

    int  p1, p2;

    p1 = 0;
    p2 = 0;

    if (p1 || p2 != 1)
      p1 = p1 + 1;
      p2 = p2 +1;
  }
}

|| не работает, так как же мне заменить ||?

1 Ответ

4 голосов
/ 28 сентября 2019

Обе стороны ||должно быть логическим.

Если вы пытаетесь сказать:

if ( (p1 || p2) != 1)

, вам действительно нужно сказать:

if (p1 != 1 || p2 != 1)

Java не может сделать переходноевещь для тебя.Кроме того, я не думаю, что вы захотите, чтобы это делалось - в долгосрочной перспективе это ДЕЙСТВИТЕЛЬНО сбивало бы с толку.

Кстати, это один из тех случаев, когда Java ПУТЬ более полезна, чем некоторыедругие языки, требуя логическое значение по обе стороны от ||(C рассматривает 0 как ложь, а ненулевое - как истину, так что ваше утверждение было бы хорошо, просто не то, что вы хотели).

Не компилировав Java, вы сразу сказали, что у вас возникла проблема, на более мягком языке ваша попытка была бы скомпилирована и была бы полностью ошибочной (возможно, таким образом, который выглядел достаточно правильным, чтобы пройти тестирование тоже ...вот откуда берутся действительно серьезные ошибки!)

Ява также рассказала вам, что именно было не так, но, как правило, требуется некоторое время, чтобы достаточно поверить в Java, чтобы действительно изучить сообщения об ошибках и попытаться выяснить, что именно.они говорят вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...