Беззнаковый битовый сдвиг вправо (>>>) – результатом выполнения оператора A>>> n является число, которое получилось сдвигом двоичного числа A вправо на n позиций. При сдвиге НЕ сохраняется знак числа, то есть младшие разряды теряются, а старшие заполняются нулями.
Битовый сдвиг влево (<<) – результатом выполнения оператора A <<n является число, которое получилось сдвигом двоичного числа A влево на n позиций. При этом старшие разряды теряются, а младшие дополняются нулями.
3.3.4 Операторы сравнения
Если условие, заданное оператором сравнения, выполняется, то выражение возвращает значение true. В противном случае возвращается значение false. Все операторы сравнения бинарные – содержат только два операнда.
Равно (==) – выражение A==B возвращает true, если значение операнда A равно значению операнда B. Обратите внимание, оператор сравнения состоит из двух знаков равенства. Если вы используете одиночный знак равенства, то получится не сравнение, а присвоение значения. Среда NetBeans предупредит вас о возможной ошибке, хотя с формальной точки зрения это логическая, а не синтаксическая ошибка.
Не равно (!=) – выражение A!=B возвращает true, если значение операнда A отлично от значения операнда B.
Больше (>) – выражение A> B возвращает true, если значение операнда A больше значения операнда B.
Больше или равно (> =) – выражение A> =B возвращает true, если значение операнда A больше или равно значению операнда B.
Меньше (<) – выражение A <B возвращает true, если значение операнда A меньше значения операнда B.
Меньше или равно (<=) – выражение A <=B возвращает true, если значение операнда A меньше или равно значению операнда B.
3.3.5 Тернарный оператор
В языке Java имеется единственный оператор, у которого три операнда. Этот оператор обозначается символом вопроса (?) и имеет следующий синтаксис:
условие? значение: значение
Условием является выражение с логическим значением. Сначала вычисляется значение выражения, указанного в условии. Если оно истинное, то оператор возвращает значение, расположенное после вопросительного знака. Если значение условия ложное, то оператор возвращает значение, следующее после двоеточия. Например:
int a=10,b;
b = (a> 5)? 50: 60;
В данном случае переменной b будет присвоено значение 50.
int a=3,b;
b = (a> 5)? 50: 60;
Во втором случае переменной b будет присвоено значение 60.
Тернарный оператор представляет собой сокращенную форму условного оператора, о котором будет рассказано в главе 4.
Глава 4. Управляющие инструкции
Управляющие инструкции устанавливают порядок выполнения программы в зависимости от некого условия. Применяя управляющие инструкции, можно создавать точки ветвления, останова, многократно выполнять блоки операторов или всю программу.
4.1 Условный оператор if
Условный оператор if в языке Java имеет следующий вид:
if (условие) {
// Блок команд, если условие истинное
}
else {
// Блок команд, если условие ложное
}
// Продолжение программы
При выполнении оператора проверяется истинность условия в круглых скобках. Если условное выражение возвращает значение true, то выполняется первый блок команд в фигурных скобках, следующий за ключевым словом if, а блок после ключевого слова else игнорируется.
Если условное выражение возвращает значение false, то первый блок команд игнорируется, и выполняется блок команд после ключевого слова else.
Пример условного оператора:
if (a+b> 100) {
a = 0;
b = 0;
}
else {
a = a +5;
b = b +2;
}
Допускается упрощенная запись оператора, в которой отсутствует блок else. В таком случае, если условие ложное, то никакие специальные действия не выполняются. Пример упрощенной записи:
if (a + b> 100) {
a = 0;
b = 0;
} // Конец условного оператора
// Следующие команды программы
4.1.1 Вложенные условные операторы