Ключевой момент: тип данных boolean объявляет переменную со значением true или false.
Реляционные операторы
Как бы вы сравнили два значения, на предмет, является ли радиус больше чем 0, равен 0 или меньше чем 0? Java представляет шесть реляционных операторов (также известных как операторы сравнения), показанных в таблице:
Оператор Java | Математический символ | Имя | Пример (radius равен 5) | Результат |
---|---|---|---|---|
< | < | меньше чем | radius < 5 | false |
<= | ≤ | меньше чем или равно | radius <= 5 | false |
> | > | больше чем | radius > 5 | true |
>= | ≥ | больше чем или равно | radius >= 5 | true |
== | = | равно | radius == 5 | false |
!= | ≠ | не равно | radius != 5 | true |
Предупреждение: оператор проверки равенства представляет собой два знака равно (==), а не один знак равенства (=). Последний символ используется для присваивания.
Результат сравнения – это булева величина: true или false. Например, следующая инструкция отобразит true:
double radius = 1; System.out.println(radius > 0);
Булевы переменные
Переменные, которые содержат булево значение, известны как булевы переменные. Тип данных boolean используется для объявления булевых переменных. Переменная boolean может содержать одно из двух значений: true или false. Например, следующее выражение присваивает true переменной lightsOn:
boolean lightsOn = true;
true и false являются литералами, т.е. используются буквально, как есть, в точности как цифра, такая как 10. Они обрабатываются как зарезервированные слова и не могут использоваться как идентификаторы в программе.
Предположим, вы хотите написать программу для практики в начальном сложении. Программа генерирует два случайных односимвольных числа number1 и number2 и отображает студенту вопрос вроде «Сколько будет 8+5?», примерно так:
После того, как студент вводит ответ, программа показывает сообщение, свидетельствующее о верности или ошибочности ответа.
Имеется несколько способов сгенерировать случайные числа. На данный момент сгенерируйте первое число используя System.currentTimeMillis() % 10, а второе число используя System.currentTimeMillis() / 7 % 10.
Код программы:
import java.util.Scanner; public class AdditionQuiz { public static void main(String[] args) { int number1 = (int) (System.currentTimeMillis() % 10); int number2 = (int) (System.currentTimeMillis() / 7 % 10); // Создать Scanner Scanner input = new Scanner(System.in); System.out.print( "Сколько будет " + number1 + " + " + number2 + "? "); int answer = input.nextInt(); System.out.println( number1 + " + " + number2 + " = " + answer + " это " + (number1 + number2 == answer)); } }
Строки 5-6 генерируют два числа, number1 и number2. Строка 14 получает ответ от пользователя. Ответ проверяется в троке 18 используя булевое выражение number1 + number2 == answer. Слово true означает «истина», «верно», слово false означает «ложь», «неверно».
Проверь себя:
- Перечислите шесть релятивистских операторов.
- Предположим, что x равен 1, покажите результат следующих булевых выражений:
(x > 0) (x < 0) (x != 0) (x >= 0) (x != 1)
- Могут ли допускаться следующие преобразования, связанные с явным преобразованием типов? Напишите тестовую программу для подтверждения вашего ответа.
boolean b = true; i = (int)b;
int i = 1; boolean b = (boolean)i;