LXF85:Java
(→Простые числа и их братья) |
(→Логика и выбор) |
||
Строка 46: | Строка 46: | ||
=== Логика и выбор === | === Логика и выбор === | ||
+ | Чтобы провести ревизию налоговой службы правильно, Несмеяне пришлось разобраться с налоговым кодексом, а там без поллитра и знаний логических операций не обойтись. Для представления логических значений в Java присутствует простой тип boolean, который принимает значения true или false. Для проведения различных логических операций можно использовать ниже перечисленные операторы: | ||
+ | |||
+ | {| border = "1" cellpadding="2" | ||
+ | !Тип операторов | ||
+ | !Операторы | ||
+ | |- | ||
+ | |операторы отношений | ||
+ | |align = "center"| < > >= <= instanceof | ||
+ | |- | ||
+ | |операторы равенства||align = "center"|== != | ||
+ | |- | ||
+ | |поразрядное И||align = "center"|& | ||
+ | |- | ||
+ | |поразрядное исключающее ИЛИ||align = "center"|^ | ||
+ | |- | ||
+ | |поразрядное включающее ИЛИ||align = "center"|ǀ | ||
+ | |- | ||
+ | |логическое И||align = "center"|&& | ||
+ | |- | ||
+ | |логическое ИЛИ||align = "center"|ǁ | ||
+ | |} | ||
+ | |||
+ | |||
+ | Пока Несмеяна разбирается в дебрях налогового кодекса, мы для иллюстрации работы с логическими выражениями обратимся к методу | ||
+ | primeNumberCheckUp(int numberForCheck), который выясняет, является ли переданное ему число простым. | ||
+ | <code> | ||
+ | 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; | ||
+ | } | ||
+ | </code> | ||
+ | В primeNumberCheckUp использованы две замечательные конструкции: оператор выбора по условию или условный оператор, и цикл. | ||
+ | Условный оператор if имеет следующий синтаксис: | ||
+ | <code> | ||
+ | if (логическое выражение) { | ||
+ | операторы группы 1; | ||
+ | } | ||
+ | else { | ||
+ | операторы группы 2; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | В вышеописанном методе использована упрощенная конструкция (без else), а для вычисления логического выражения использованы | ||
+ | операторы: != (не равно) и || (логическое «или»). В полной конструкции в случае истинности логического выражения выполняются операторы группы 1, иначе – группы 2. | ||
+ | |||
+ | Вместо if для управления выполнением кода может быть использована специальная конструкция switch. В рамках этой конструкции | ||
+ | вычисляется целочисленное выражение, и в соответствии с полученным результатом ведется поиск соответствующего значения блока | ||
+ | case. | ||
+ | <code> | ||
+ | int flag = 6; | ||
+ | switch (flag) { | ||
+ | case 1: { | ||
+ | System.out.println(“Царевна в спальне №1”); | ||
+ | break; | ||
+ | } | ||
+ | case 5: { | ||
+ | System.out.println(“Царевна в спальне №5”); | ||
+ | break; | ||
+ | } | ||
+ | default: { | ||
+ | System.out.println(“Кто тут знает, где царевна?”); | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | Обратите внимание на оператор break, который обеспечивает немедленный выход из любого блока, а в примере выше прекращает дальнейшую обработку операторов конструкции switch, а также на блок операторов default – этот блок необязательный, он выполняется в случае, если выражение, удовлетворяющие условию, не было найдено среди case. | ||
+ | |||
=== Циклы === | === Циклы === | ||
=== Массивы === | === Массивы === | ||
=== Куча хлама === | === Куча хлама === | ||
=== Пятый угол === | === Пятый угол === |
Версия 12:05, 12 марта 2008
|
|
|
Содержание |
Считалочки
ЧАСТЬ 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.