Обе стороны ||должно быть логическим.
Если вы пытаетесь сказать:
if ( (p1 || p2) != 1)
, вам действительно нужно сказать:
if (p1 != 1 || p2 != 1)
Java не может сделать переходноевещь для тебя.Кроме того, я не думаю, что вы захотите, чтобы это делалось - в долгосрочной перспективе это ДЕЙСТВИТЕЛЬНО сбивало бы с толку.
Кстати, это один из тех случаев, когда Java ПУТЬ более полезна, чем некоторыедругие языки, требуя логическое значение по обе стороны от ||(C рассматривает 0 как ложь, а ненулевое - как истину, так что ваше утверждение было бы хорошо, просто не то, что вы хотели).
Не компилировав Java, вы сразу сказали, что у вас возникла проблема, на более мягком языке ваша попытка была бы скомпилирована и была бы полностью ошибочной (возможно, таким образом, который выглядел достаточно правильным, чтобы пройти тестирование тоже ...вот откуда берутся действительно серьезные ошибки!)
Ява также рассказала вам, что именно было не так, но, как правило, требуется некоторое время, чтобы достаточно поверить в Java, чтобы действительно изучить сообщения об ошибках и попытаться выяснить, что именно.они говорят вам.