Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
х = х + 1; х+= 1;
Арифметические операции
Наряду с четырьмя обычными арифметическими операциями +,-,*, /, существует оператор получения остатка от деления %, который может быть применен как к целочисленным аргументам, так и к дробным.
Работа с целочисленными аргументами подчиняется простым правилам. Если делится значение а на значение Ь, то выражение (а/Ь)*Ь+(а%Ь) должно в точности равняться а. Здесь, конечно, оператор деления целых чисел / всегда возвращает целое число. Например:
9/5 возвращает 1 9/(-5) возвращает -1 (-9)/5 возвращает -1 (-9)/(-5) возвращает 1
Остаток может быть положительным, только если делимое было положительным. Соответственно, остаток может быть отрицательным только в случае отрицательного делимого.
9%5 возвращает 4 9%(-5) возвращает 4 (-9)%5 возвращает -4 (-9)%(-5) возвращает -4
Попытка получить остаток от деления на 0 приводит к ошибке.
Деление с остатком для дробных чисел может быть произведено по двум различным алгоритмам. Один из них повторяет правила для целых чисел, и именно он представлен оператором %. Если в рассмотренном примере деления 9 на 5 перейти к дробным числам, значение остатка во всех вариантах не изменится (оно будет также дробным, конечно).
9.0%5.0 возвращает 4.0 9.0%(-5.0) возвращает 4.0 (-9.0)%5.0 возвращает -4.0 (-9.0)%(-5.0) возвращает -4.0
Однако стандарт IEEE 754 определяет другие правила. Такой способ представлен методом стандартного класса Math.lEEEremainder(double f 1, double f2). Результат этого метода - значение, которое равно f 1 -f2*n, где п — целое число, ближайшее к значению f 1/f2, а если два целых числа одинаково близки к этому отношению, то выбирается четное. По этому правилу значение остатка будет другим:
Math.lEEEremainder(9.0, 5.0) возвращает -1.0 Math.lEEEremainder(9.0, -5.0) возвращает -1.0 Math.lEEEremainder(-9.0, 5.0) возвращает 1.0 Math.lEEEremainder(-9.0, -5.0) возвращает 1.0
Унарные операторы инкрементации ++ и декрементации --, как обычно, можно использовать как справа, так и слева.
int х=1; int у=++х;
В этом примере оператор ++ стоит перед переменной х, это означает, что сначала произойдет инкрементация, а затем значение х будет использовано для инициализации у. В результате после выполнения этих строк значения х и у будут равны 2.