Результатом логических операций является булево значение true или false. Логические операции неприменимы к операндам имеющим тип отличный от boolean:
import java.util.*;
public class Bool
{ public static void main(String[] args)
{ Random rand = new Random();
int i = rand.nextInt() % 10; // генерация случайных чисел i и j
int j = rand.nextInt() % 10; // в интервале [-9,9]
System.out.println("i = " + i);
System.out.println("j = " + j);
System.out.println("i < j is " + (i < j));
System.out.println("i >= j is " + (i >= j));
System.out.println("i == j is " + (i == j));
System.out.println("i != j is " + (i != j));
System.out.println("(i < 5) && (j >3) is "+((i < 5) && (j >3)) );
System.out.println("(i < 5) || (j>3)) is "+ ((i < 5) || (j >3)) );
}
// System.out.println("i && j is " + (i && j)); // ошибка int && int
// System.out.println prt("i || j is " + (i || j)); // ошибка int || int
// System.out.println prt("!i is " + !i); // ошибка ! int
}
Результат выполнения кода программы:
i = 2
j = -4
i < j is false
i >= j is true
i == j is false
i != j is true
(i < 5) && (j >3) is false
(i < 5) || (j>3) is true
Следует отметить, что если ожидается в аргументе значение String, то выполняется автоматическое преобразование к этому типу. В примере выше это использовалось для преобразования данных типа int и boolean в текстовую форму.
Логическое выражение будет вычисляться только до тех пор, пока не будет определена неоднозначно правдивость или ложность всего выражения, следовательно, все части логического выражения могут не вычисляться.