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