Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Троичный оператор

Читайте также:
  1. Q: Оператор (statement) присваивания, который используется для присваивания результата выражения переменной имеет
  2. Ветвление по ряду условий (оператор case)
  3. Вопрос 14 Потеря и восстановление информации о типе. Операторы is и as.
  4. Дата и номер приказа Ростуризма о внесении сведений в единый федеральный реестр туроператоров
  5. Звонок принял оператор или секретарь
  6. Зміни до керівництва оператора
  7. Квалиметрия технико-эргономических свойств подсистемы операторов

Троичный оператор (?:) может заменить конструкцию if – else.

Условие? выражение 1: выражение 2

Этот своеобразный оператор имеет три операнда. Вначале записывается произвольное логическое выражение, т. е. имеющее в результате true или false, затем знак вопроса, потом два произвольных выражения, разделенных двоеточием, например,

boolean_act? value0: value1

Если boolean_act вычисляется как true, выполняется value0 и оно становится результатом, производимым оператором, в противном случае - value1.

static int uslovn_op(int k) {

return k < 100? k * 5: k * 25;

}

Или можно записать:

static int uslovn_op (int k) {

if (k < 100)

return k*5;

else

return k*25;

}

 

 

Управляющие структуры Java

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

Набор управляющих конструкций языка Java включает:

• блок {};

• операторы присваивания;

• условный оператор if;

• оператор варианта switch;

• три оператора цикла while, do-while, for;

• операторы перехода break, continue и return;

• пустой оператор — просто точка с запятой.

Всякий оператор завершается точкой с запятой. Можно поставить точку с запятой в конце любого выражения, и оно станет оператором (expression statement). Но смысл это имеет только для операций присваивания, инкремента и декремента и вызовов методов. В остальных случаях это бесполезно, потому что вычисленное значение выражения потеряется.

Блок

Блок заключает в себе нуль или несколько операторов с целью использовать их как один оператор в тех местах, где по правилам языка можно записать только один оператор.

int m=3, k=6, n=9;

if (m>l) {m = 5; k = 6;}

Можно записать и пустой блок, просто пару фигурных скобок {}.

Блоки операторов часто используются для ограничения области действия переменных и просто для улучшения читаемости текста программы.

Условный оператор if-else

Условный оператор (if-else statement) в языке Java записывается так:

if (логВыр) оператор1;

else оператор2;

Сначала вычисляется логическое выражение логBыр. Если результат true, то действует оператор1 и на этом действие условного оператора завершается, оператор2 не действует, далее будет выполняться следующий за if оператор. Если результат false, то действует оператор2, при этом оператор1 вообще не выполняется.

Условный оператор может быть сокращенным (if-then statement), в случае false не выполняется ничего:

if (логВыр) оператор1;

Синтаксис языка не позволяет записывать несколько операторов ни в ветви if, ни в ветви else. При необходимости составляется блок операторов в фигурных скобках. Соглашения "Code Conventions" рекомендуют всегда использовать фигурные скобки и размещать оператор на нескольких строках с отступами, как в следующем примере:

if (a < d) {

d = a + b;

}

else {

d = a - b;

}

Оператор варианта switch

Оператор варианта switch организует разветвление по нескольким направлениям. Каждая ветвь отмечается константой или константным выражением какого-либо целого типа (кроме long) и выбирается, если значение определенного выражения совпадет с этой константой. Вся конструкция выглядит так:

switch (целВыр){

case констВыр1: оператор1;

case констВыр2: оператор2;

.....

case констВыр N: операторN;

default: операторOef;

}

Стоящее в скобках выражение целВыр может быть типа byte, short, int, char, но не long. Целые числа или целочисленные выражения, составленные из констант, констВыр тоже не должны иметь тип long.

Оператор варианта выполняется так. Все константные выражения вычисляются заранее, на этапе компиляции, и должны иметь отличные друг от друга значения. Сначала вычисляется целочисленное выражение целВыр. Если оно совпадает с одной из констант, то выполняется оператор, отмеченный этой константой. Затем выполняются ("fall through labels") все следующие операторы, включая и операторОеf, и работа оператора варианта заканчивается.

Если же ни одна константа не равна значению выражения, то выполняется операторОеfи все следующие за ним операторы. Поэтому ветвь default должна записываться последней. Ветвь default может отсутствовать, тогда в этой ситуации оператор варианта вообще ничего не делает.

Таким образом, константы в вариантах case играют роль только меток, точек входа в оператор варианта, а далее выполняются все оставшиеся операторы в порядке их записи.

После выполнения одного варианта оператор switch продолжает выполнять все оставшиеся варианты.

Чаще всего необходимо "пройти" только одну ветвь операторов. В таком случае используется оператор break (описан далее), сразу же прекращающий выполнение оператора switch. Может понадобиться выполнить один и тот же оператор в разных ветвях case. В этом случае ставим несколько меток case подряд. Вот простой пример.

int ball=7;

switch (ball){

case 5: case 6: case 7:

ocenka=3; break;

case 8: case 9:

ocenka=4; break;

case 10:

ocenka=5; break;

default: ocenka=2;

}

System.out.println("Ocenka: " + ocenka);

На следующем рисунке показано, как это выглядит в окне Command Prompt.

He забывайте завершать варианты оператором break.


Дата добавления: 2015-10-29; просмотров: 159 | Нарушение авторских прав


Читайте в этой же книге: Что такое Java | Мобильность Java | Выполнение Java-программы | Borland JBuilder 9 | Oracle9i JDeveloper и Oracle9i Developer Suite | Java в Internet | Первая программа на языке Java | Синтаксис языка | Типы данных языка Java | Вещественный тип данных |
<== предыдущая страница | следующая страница ==>
Поразрядные операторы| Операторы цикла do-while, while, for

mybiblioteka.su - 2015-2024 год. (0.008 сек.)