Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Операторы

Оператор — символ, который выполняет действие над значениями: складывает, сравнивает, объединяет условия. Значения, с которыми он работает, называются операндами: в 2 + 3 оператор +, а операнды 2 и 3.

Арифметика

Сложение, вычитание и умножение работают привычно. Оператор % даёт остаток от деления:

void main() {
    IO.println(7 + 2);
    IO.println(7 - 2);
    IO.println(7 * 2);
    IO.println(7 % 2);
}

Результат:

9
5
14
1

Остаток удобен, чтобы проверять чётность: число чётное, если n % 2 равно нулю.

Деление

Если оба операнда целые, результат тоже целый — дробная часть просто отбрасывается. Чтобы получить дробный ответ, хотя бы одно число должно быть double:

void main() {
    IO.println(7 / 2);
    IO.println(7.0 / 2);
}

Результат:

3
3.5

Составное присваивание

Запись x += 5 — короткая форма x = x + 5. Так же работают -=, *=, /= и %=. Для увеличения и уменьшения на единицу есть операторы ++ и --:

void main() {
    int count = 10;
    count += 5;
    count *= 2;
    count++;
    IO.println(count);
}

Результат:

31

Сравнение

Операторы сравнения возвращают boolean: == (равно), != (не равно), <, >, <=, >=. Обратите внимание: сравнение пишется двумя знаками =, один знак — это присваивание:

void main() {
    int age = 20;
    IO.println(age >= 18);
    IO.println(age == 21);
    IO.println(age != 21);
}

Результат:

true
false
true

Логические операторы

Логические операторы объединяют условия: && (и) — истина, когда истинны оба условия; || (или) — когда истинно хотя бы одно; ! (не) — меняет значение на противоположное:

void main() {
    int age = 25;
    boolean hasTicket = false;
    IO.println(age >= 18 && hasTicket);
    IO.println(age >= 18 || hasTicket);
    IO.println(!hasTicket);
}

Результат:

false
true
true

Есть и операторы, которые работают с отдельными битами числа, — о них урок побитовые операторы.

Порядок вычисления

Как и в математике, умножение и деление выполняются раньше сложения и вычитания. Скобки меняют порядок:

void main() {
    IO.println(2 + 3 * 4);
    IO.println((2 + 3) * 4);
}

Результат:

14
20

Если сомневаетесь в порядке, поставьте скобки — код станет понятнее.

Частая ошибка

Деление целых чисел незаметно теряет дробную часть. Здесь среднее двух оценок должно быть 4.5, но получается 4:

void main() {
    int a = 4;
    int b = 5;
    double average = (a + b) / 2;
    IO.println(average);
}

Результат:

4.0

Деление 9 / 2 выполнилось как целочисленное ещё до записи в double. Делите на 2.0, и результат будет 4.5.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.