LXF85:Java
|
|
|
Содержание |
Считалочки
ЧАСТЬ 2: Мало сыграть свадьбу – надо еще научиться вести семейный бюджет, выполнять одну и ту же работу каждый день и принимать судьбоносные решения. Антон Черноусов продолжает учить монархическую чету премудростям Java.
В предыдущей статье были рассмотрены основы объектно-ориентированного языка программирования Java: инкапсуляция, наследование, полиморфизм. Мы создали простое приложение, в котором женили короля на царевне Несмеяне.
Сегодня мы поговорим о простых типах (числах), о ветвлениях, циклах, а также об исключениях.
Простые числа и их братья
Итак, мы оставили нашу царевну Несмеяну в семейном гнезде, где она в скором времени добралась до казны государства. Ей пришлось освоить нехитрую математику – отнимать и делить: ведь казна требует строго учета, и никакая программа не обходится без вычислений. Без них невозможно создать даже самую простую систему учета и контроля, а мадам необходимо наладить нетривиальный учет бюджетных средств.
Для реализации арифметических операций в Java существует семь арифметических операторов, которые работают с любыми числовыми типами: сложение +, вычитание –, умножение *, деление /, остаток %, унарный минус -val и унарный плюс +val, а также шесть примитивных типов переменных для выполнения арифметических операций:
Тип переменной | Разрядность | Описание |
---|---|---|
Byte | 8 | Целое со знаком |
Short | 16 | Целое со знаком |
Int | 32 | Целое со знаком |
Long | 64 | Целое со знаком |
Float | 32 | Число с плавающей точкой |
Double | 64 | Число с плавающей точкой |
Значение типов byte и short при выполнении вычислений переопределяется int, поэтому использование этих типов целесообразно для
хранения небольших значений для уменьшения объема используемой оперативной памяти.
int iA = 10; byte bB = 12; int iC = iA + bB; System.out.println(“Сумма А и B = “ + iC);
Выше приведен пример выполнения арифметической операции с использованием переменных различных типов. Результат – целое число типа int. Для преобразования типа переменной, например, в тип с более низкой разрядностью, необходимо воспользоваться специальными языковыми конструкциями:
double dD = 10.2; double dE = 12.23; float fF = (float) (dD + dE); System.out.println(fF);
Логика и выбор
Чтобы провести ревизию налоговой службы правильно, Несмеяне пришлось разобраться с налоговым кодексом, а там без поллитра и знаний логических операций не обойтись. Для представления логических значений в Java присутствует простой тип boolean, который принимает значения true или false. Для проведения различных логических операций можно использовать ниже перечисленные операторы:
Тип операторов | Операторы |
---|---|
операторы отношений | < > >= <= instanceof |
операторы равенства | == != |
поразрядное И | & |
поразрядное исключающее ИЛИ | ^ |
поразрядное включающее ИЛИ | ǀ |
логическое И | && |
логическое ИЛИ | ǁ |
Пока Несмеяна разбирается в дебрях налогового кодекса, мы для иллюстрации работы с логическими выражениями обратимся к методу
primeNumberCheckUp(int numberForCheck), который выясняет, является ли переданное ему число простым.
private boolean primeNumberCheckUp(int numberForCheck) { boolean result = true; if (numberForCheck != 1 || numberForCheck != 2 || numberForCheck != 3) { for (int currentNumber = 2; currentNumber < numberForCheck; currentNumber++) { if (numberForCheck % currentNumber == 0) { result = false; } } } return result; }
В primeNumberCheckUp использованы две замечательные конструкции: оператор выбора по условию или условный оператор, и цикл.
Условный оператор if имеет следующий синтаксис:
if (логическое выражение) { операторы группы 1; } else { операторы группы 2; }
В вышеописанном методе использована упрощенная конструкция (без else), а для вычисления логического выражения использованы операторы: != (не равно) и || (логическое «или»). В полной конструкции в случае истинности логического выражения выполняются операторы группы 1, иначе – группы 2.
Вместо if для управления выполнением кода может быть использована специальная конструкция switch. В рамках этой конструкции
вычисляется целочисленное выражение, и в соответствии с полученным результатом ведется поиск соответствующего значения блока
case.
int flag = 6; switch (flag) { case 1: { System.out.println(“Царевна в спальне №1”); break; } case 5: { System.out.println(“Царевна в спальне №5”); break; } default: { System.out.println(“Кто тут знает, где царевна?”); break; } }
Обратите внимание на оператор break, который обеспечивает немедленный выход из любого блока, а в примере выше прекращает дальнейшую обработку операторов конструкции switch, а также на блок операторов default – этот блок необязательный, он выполняется в случае, если выражение, удовлетворяющие условию, не было найдено среди case.