Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
49
Добавлен:
12.05.2015
Размер:
1.82 Mб
Скачать

84 Часть I. Язык Java

// арифметика с использованием double-типов

System.out.println("ХпАрифметика для вещественных значений"); double da = I + I; double db = da * 3; double dc = db / 4; double dd = dc — a; double de = -dd;

System.out.println("da = " + da); System.out.println("db = " + db); System.out.println("dc = " + dc) ; System.out.println("dd = " + dd); System.out.println("de = " + de); } • }

Вывод этой программы:

Целочисленная арифметика

а = 2

Ь = б

с = 1

d = -1

е = 1

Арифметика для вещественных значений

da = 2

db = 6

dc = 1.5

dd = -0.5

de = 0.5

Деление по модулю

Операция деления по модулю (%) вычисляет остаток от операции деления. Ее можно применять к типам с плавающей точкой и к целым. (Это отлича­ется от C/C++, в которых данную операцию можно применять только к це­лым типам.) Следующий пример демонстрирует операцию %:

I/ Демонстрирует операцию %. class Modulus (

public static void main(String args[]) { int x = 42; double у = 42.3;

System.out.println("x mod 10 = " + x % 10); System.out.println("y mod 10 = " + у % 10); } }

Глава 4. Операции 85_

После выполнения программы вы получите следующий вывод:

х mod 10 = 2 у mod 10=2.3

Арифметические операции присваивания

В Java обеспечены специальные операции, которые можно использовать для комбинирования арифметических операций с присваиванием. Как вы, веро­ятно, знаете, операторы, подобные следующему, весьма обычны в програм­мировании:

а = а + 4;

В Java вы можете переписать этот оператор так:

а += 4;

Данная версия использует операцию присваивания со сложением +=. Оба оператора выполняют одно и то же — увеличивают значение на 4.

Вот другой пример:

а = а % 2; ^

который можно выразить так:

а %= 2;

В этом случае операция %= получает остаток от деления а на 2 и помещает этот результат обратно в а.

Имеются операции присваивания для всех арифметических и бинарных операций. Таким образом, любой оператор формы

var = var op expression;

где var — идентификатор переменной; op—выполняемая операция; expres­sion — выражение;

можно переписать как

var op = expression

Операции присваивания обеспечивают два преимущества. Во-первых, они немного сокращают объем клавиатурного ввода, потому что короче эквива­лентных им длинных форм. Во-вторых, исполнительная система Java реали­зует их гораздо эффективнее, чем их длинные эквиваленты. По этим причи­нам в профессионально составленных Java-программах вы часто увидите использование именно этих форм операций присваивания.

Пример программы, которая использует несколько операций присваивания с арифметическими (в форме ор =):

86 Часть I. Язык Java

// Демонстрирует некоторые операции присваивания, class OpEquals {

public static void main(String args[]) (

int a = I;

int b = 2;

int с = 3;

a += 5;

b *= 4; с += a * b; с %= 6;

System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c) ; } }

Вывод этой программы:

а = 6 b = 8 с = 3

Инкремент и декремент

В Java операции инкремента и декремента обозначаются как ++ и — (по со­ставу операндов это унарные операции). Они были представлены в главе 2, а здесь будут обсуждены подробнее. Указанные операции обладают некото­рыми специальными свойствами, которые делают их весьма интересными. Начнем с точного рассмотрения того, что операции инкремента и декремен­та делают.

Операция инкремента увеличивает свой операнд на единицу, а операция декремента — уменьшает (тоже на единицу). Например, следующий оператор:

х = х + 1;

можно переписать с помощью операции инкремента так:

х++;

Точно так же оператор

х = х — 1;

эквивалентен

х — ;

Эти операции уникальны тем, что могут появляться как в постфиксной фор­ме, где они следуют за операндом, как только что показано, так и в пре-

Соседние файлы в папке JavaLit