Polytech-soft.com

ПК журнал
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Тернарный оператор в java

Операторы Java

В этой статье вы узнаете о различных типах операторов Java и их синтаксисе.

Операторы это специальные символы, которые осуществляют операции над операндами ( переменными и значениями ). Например, « + » это оператор, который производит сложение.

Сейчас вы узнаете, как использовать операторы, чтобы манипулировать переменными.

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

Используются в Java , чтобы присвоить значения переменным. Например,

Оператор « = » присваивает значение справа от себя переменной, находящейся слева. В примере переменной age присвоено значение 5 .

Пример 1: оператор присваивания

Когда вы запустите программу, на экран выведется:

Арифметические операторы

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

ОператорЗначение
+Сложение (также используется для конкатенации строк)
Вычитание
*Умножение
/Деление
%Остаток от деления

Пример 2: Арифметические операторы

Когда вы запустите программу, на экран выведется:

В примере с оператором деления Java , приведенном выше, использованные операнды – переменные. Кроме этого могут использоваться символьные значения. Например:

Оператор « + » также может быть использован, чтобы соединить ( конкатенировать ) две строки или больше.

Пример 3: Арифметический оператор

Когда вы запустите программу, на экран выведется:

Унарные операторы

Унарный оператор Java производит операцию только над одним операндом.

ОператорЗначение
+Унарный плюс (не нужен, так как числа положительные и без него).
Унарный минус; инвертирует знак выражения.
++Оператор инкремента; увеличивает значение на 1.
Оператор декремента; уменьшает значение на 1.
!Оператор логического отрицания; инвертирует значение булевой переменной.

Пример 4: Унарный оператор

Когда вы запустите программу, на экран выведется:

В Java можно использовать операторы « ++ » и « — » в качестве префикса и постфикса. Оператор « ++ » увеличивает значение на 1 , а « — » уменьшает значение на 1 .

Есть большая разница в использовании операторов Java инкремента и декремента в префиксе и в постфиксе. Рассмотрим пример:

Пример 5: Унарный оператор

Когда вы запустите программу, на экран выведется:

Когда выполняется выражение System.out.println(number++) , первым вычисляется изначальное значение. Переменная number увеличивается только после этого. Поэтому вы получите на выходе 5.2 . Далее, когда выполняется System.out.println(number) , показывается значение 6.2 .

Тем не менее, когда выполняется System.out.println(++number) , number увеличивается на 1 перед тем, как будет выведено на экран. Так же обстоят дела и с оператором Java декремента.

Операторы равенства и отношений

Операторы равенства и отношений проверяют, является ли операнд больше, меньше, равен, неравен второму и так далее. Получаемый результат равен true или false .

ОператорОписаниеПример
==равен5 == 3 результат false
!=неравен5 != 3 результат true
>Больше5 > 3 результат true
=Больше или равен5 >= 5 результат true
Java , на экран выведется:

Здесь мы использовали оператор « > », чтобы проверить, больше ли number1 , чем number2 .

Так как number2 больше, чем number1 , результатом выражения number1 > number2 будет false .

Кроме операторов отношений, есть оператор сравнения типов instanceof , который сравнивает объект и определенный тип.

Оператор instanceof

Пример оператора instanceof .

Когда вы запустите программу, на экран выведется true . Это происходит от того, что test — экземпляр класса String .

Логические операторы

Java логические операторы || ( условное-ИЛИ (OR) ) и && ( условное-И (AND) ) совершают операции над булевыми выражениями. Вот как они работают.

ОператорОписаниеПример
||условное-ИЛИ; true если хотя бы одно из булевых выражений истинно (true)false || true результат — true
&&условное-И; истинно если все булевы выражения истинны (true).false && true результат — false

Пример 8: Логические операторы

Когда вы запустите программу, на экран выведется:

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

Условный оператор или тернарный оператор Java « ? :» — это сокращение выражения if-then-else . Синтаксис условного оператора:

Вот как это работает.

  • Если значение выражения — true , expression1 присваивается переменной ;
  • Если значение выражения — false , expression2 присваивается переменной .

Пример 9: Тернарный оператор

Когда вы запустите тернарного оператора Java пример, на экран выведется:

Побитовые операторы и смещение битов

Чтобы осуществлять побитовые операции, в Java используются такие операторы.

ОператорОписание
Побитовое дополнение.
>Правый сдвиг.
>>>Беззнаковый правый сдвиг.
&Побитовое И.
^Побитовое исключающее ИЛИ.
|Побитовое включающее ИЛИ.

Эти операторы применяются нечасто.

Другие операторы присваивания

В начале статьи мы рассмотрели только один оператор присваивания = . Существует еще несколько операторов Java присваивания.

ОператорПримерЭквивалент
+=x += 5x = x + 5
-=x -= 5x = x – 5
*=x *= 5x = x * 5
/=x /= 5x = x / 5
%=x %= 5x = x / 5
>=x >>= 5x = x >> 5
&=x &= 5x = x & 5
^=x ^= 5x = x ^ 5
|=x |= 5x = x | 5

Данная публикация представляет собой перевод статьи « Java Operators » , подготовленной дружной командой проекта Интернет-технологии.ру

9. Java — Основные операторы языка

Java предоставляет богатый набор операторов для управления переменными. Все операторы Java можно разделить на следующие группы:

  • арифметические операторы;
  • операторы сравнения;
  • побитовые операторы;
  • логические операторы;
  • операторы присваивания;
  • прочие операторы.

Содержание

Арифметические операторы

Арифметические операторы — используются в математических выражениях таким же образом, как они используются в алгебре. Предположим, целая переменная A равна 10, а переменная B равна 20. В следующей таблице перечислены арифметические операторы в Java:

ОператорОписаниеПример
+Складывает значения по обе стороны от оператораA + B даст 30
Вычитает правый операнд из левого операндаA — B даст -10
*Умножает значения по обе стороны от оператораA * B даст 200
/Оператор деления делит левый операнд на правый операндB / A даст 2
%Делит левый операнд на правый операнд и возвращает остатокB % A даст 0
++Инкремент — увеличивает значение операнда на 1B++ даст 21
Декремент — уменьшает значение операнда на 1B— даст 19

Пример

Следующий простой пример показывает программно арифметические операторы. Скопируйте и вставьте следующий java-код в файл test.java, скомпилируйте и запустить эту программу:

Это произведет следующий результат:

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

Есть следующие операторы сравнения, поддерживаемые на языке Java. Предположим, переменная A равна 10, а переменная B равна 20. В следующей таблице перечислены реляционные операторы или операторы сравнения в Java:

ОператорОписаниеПример
==Проверяет, равны или нет значения двух операндов, если да, то условие становится истинным(A == B) — не верны
!=Проверяет, равны или нет значения двух операндов, если значения не равны, то условие становится истинным(A != B) — значение истинна
>Проверяет, является ли значение левого операнда больше, чем значение правого операнда, если да, то условие становится истинным(A > B) — не верны
=Проверяет, является ли значение левого операнда больше или равно значению правого операнда, если да, то условие становится истинным(A >= B) — значение не верны
> (сдвиг вправо)Бинарный оператор сдвига вправо. Значение правых операндов перемещается вправо на количество бит, заданных левых операндом.A >> 2 даст 15, который является 1111
>>> (нулевой сдвиг вправо)Нулевой оператор сдвига вправо. Значение левых операндов перемещается вправо на количество бит, заданных правым операндом, а сдвинутые значения заполняются нулями.A >>> 2 даст 15, который является 0000 1111

Пример

Следующий простой пример показывает, программно побитовые операторы в Java. Скопируйте и вставьте следующий java-код в файл test.java, скомпилируйте и запустить эту программу:

Будет получен следующий результат:

Логические операторы

Предположим, логическая переменная A имеет значение true, а переменная B хранит false. В следующей таблице перечислены логические операторы в Java:

ОператорОписаниеПример
&&Называется логический оператор «И». Если оба операнда являются не равны нулю, то условие становится истинным(A && B) — значение false
||Называется логический оператор «ИЛИ». Если любой из двух операндов не равен нулю, то условие становится истинным(A || B) — значение true
!Называется логический оператор «НЕ». Использование меняет логическое состояние своего операнда. Если условие имеет значение true, то оператор логического «НЕ» будет делать false!(A && B) — значение true

Пример

Следующий простой пример показывает, программно логические операторы в Java. Скопируйте и вставьте следующий java-код в файл test.java, скомпилируйте и запустить эту программу:

Это произведет следующий результат:

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

Существуют следующие операторы присваивания, поддерживаемые языком Java:

ОператорОписаниеПример
=Простой оператор присваивания, присваивает значения из правой стороны операндов к левому операндуC = A + B, присвоит значение A + B в C
+=Оператор присваивания «Добавления», он присваивает левому операнду значения правогоC += A, эквивалентно C = C + A
-=Оператор присваивания «Вычитания», он вычитает из правого операнда левый операндC -= A, эквивалентно C = C — A
*=Оператор присваивания «Умножение», он умножает правый операнд на левый операндC * = A эквивалентно C = C * A
/=Оператор присваивания «Деление», он делит левый операнд на правый операндC /= A эквивалентно C = C / A
%=Оператор присваивания «Модуль», он принимает модуль, с помощью двух операндов и присваивает его результат левому операндуC %= A, эквивалентно C = C % A
>=Оператор присваивания «Сдвиг вправо»C >>= 2, это как C = C >> 2
&=Оператор присваивания побитового «И» («AND»)C &= 2, это как C = C & 2
^=Оператор присваивания побитового исключающего «ИЛИ» («XOR»)C ^= 2, это как C = C ^ 2
|=Оператор присваивания побитового «ИЛИ» («OR»)C |= 2, это как C = C | 2

Пример

Следующий простой пример показывает, программно логические операторы в Java. Скопируйте и вставьте следующий java-код в файл test.java, скомпилируйте и запустить эту программу:

Будет получен следующий результат:

Прочие операторы

Есть несколько других операторов, поддерживаемых языком Java.

Тернарный оператор или условный оператор (?:)

Тернарный оператор — оператор, который состоит из трех операндов и используется для оценки выражений типа boolean. Тернарный оператор в Java также известен как условный оператор. Этот. Цель тернарного оператора или условного оператора заключается в том, чтобы решить, какое значение должно быть присвоено переменной. Оператор записывается в виде:

Пример

Ниже приведен пример:

Будет получен следующий результат:

Оператор instanceof

Оператор instanceof — проверяет, является ли объект определенного типа (типа класса или типа интерфейса) и используется только для переменных ссылочного объекта. Оператор instanceof записывается в виде:

Примеры

Если переменная ссылочного объекта в левой части оператора проходит проверку для класса/типа интерфейса на правой стороне, результатом будет значение true. Ниже приведен пример и описание оператора instanceof:

Будет получен следующий результат:

Этот оператор по-прежнему будет возвращать значение true, если сравниваемый объект является совместимым с типом на право назначения. Ниже приводится еще один пример:

Будет получен следующий результат:

Приоритет операторов в Java

Приоритет операторов определяет группирование терминов в выражении. Это влияет как вычисляется выражение. Некоторые операторы имеют более высокий приоритет, чем другие; например оператор умножения имеет более высокий приоритет, чем оператор сложения:

Например, x = 7 + 3 * 2. Здесь x присваивается значение 13, не 20, потому что оператор «*» имеет более высокий приоритет, чем «+», так что сначала перемножается «3 * 2», а затем добавляется «7».

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

Тернарный оператор в JavaScript

30 декабря 2019

Тернарный (или условный) оператор существует во многих языках программирования — например, в C++, Java, Python, PHP и других. Разберёмся, как он работает в JavaScript.

Все операторы различаются по количеству аргументов, к которым они применяются. Например, существует оператор «-», который меняет знак числа на противоположный. Если такой оператор применяется к одному числу, то есть у него один аргумент — он называется унарным.

Кроме унарных операторов, существуют операторы с двумя аргументами — бинарные. Например, бинарный «+» складывает два аргумента:

И, наконец, тернарный оператор:

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

Это единственный оператор с тремя аргументами, что отражено в названии. Первый аргумент — это условие. Если оно истинно (равно true ), оператор вернёт второй аргумент — выражение1. В ином случае он вернёт третий аргумент — выражение2.

Что-то напоминает, да? По механике работы тернарный оператор похож на условную конструкцию if с альтернативной веткой else , но его синтаксис позволяет писать меньше строк кода. Сравним:

По сути оба фрагмента кода выполняют одно и то же действие — проверяют условие, а затем присваивают переменной первое или второе выражение в зависимости от истинности этого условия. Разница лишь в форме записи.

Варианты использования

Значение, возвращаемое тернарным оператором, можно записать в переменную — этот вариант мы уже рассмотрели в примере выше. Кроме этого, его можно использовать в функциях при возвращении значения с помощью return :

Также возможно использование множественных тернарных операций. В этом случае несколько операторов «?» будут идти подряд:

Здесь каждое условие проверяется последовательно. Если первое условие истинно, переменной booksCount присваивается значение ‘План на год выполнен!’ . В ином случае код выполняется дальше, и проверяется второе условие (booksCount > 10) .

Что выбрать: тернарный оператор или if

При выборе за основной показатель нужно взять читабельность кода. Чем код понятнее, нагляднее, тем удобнее его рефакторить и поддерживать. Тернарный оператор может как сделать код проще, так и необоснованно его усложнить. Это зависит от ситуации.

Посмотрим ещё раз на самый первый вариант, уже разобранный выше. Здесь переменной присваивается значение в зависимости от условия, и это пример грамотного использования тернарного оператора. В таком случае он позволяет избавиться от громоздкой условной конструкции и сделать код проще и короче.

Но есть варианты, когда использование оператора усложняет код. В большинстве случаев это относится к множественным тернарным операциям, о которых речь шла выше. Ещё к таким вариантам стоит отнести использование тернарного оператора для выполнения целых фрагментов кода в зависимости от условия, а не простого присвоения значения переменной. Рассмотрим пример:

Такой код достаточно сложно читать, особенно если строк станет больше. Здесь будет уместнее использовать условную конструкцию if .

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

Тема 3. Операторы в Java

Операторы — это специальные символы (или целые слова), с помощью которых можно выполнять некоторые действия с данными (аргументами). Операторы, работающие с одним аргументом, называются унарными, с двумя — бинарными, а с тремя — тернарными. Те, что нужно писать до операнда, называют префиксными, те, что после, — постфиксными, но большинство из них нужно писать между аргументами, их называют инфиксными бинарными операторами.

Все операторы в Java, а их больше сорока, можно разбить на группы:

  • арифметические,
  • битовые,
  • операторы сравнения,
  • логические,
  • операторы присваивания

и отдельностоящие instanceOf и тернарный (условный) оператор.

Арифметические операторы используются для осуществления привычных нам арифметических вычислений: сложение, вычитание, умножение, деление и др.

Ниже в таблице приведен список всех арифметических операторов:

ОператорОписаниеПример
+Инфиксный оператор сложения. Складывает левый и правый аргументы. С типом String используется для конкатенацииint a = 13 + 271;
Инфиксный оператор вычитания. Вычитает из левого аргумента правыйint a = 271 — 103;
/Инфиксный оператор деления. Делит левый аргумент на правый. При работе с целочисленными типами остаток от деления отбрасываетсяint a = 80 / 11; // = 7
*Инфиксный оператор умножения. Умножает левый аргумент на правыйint a = 2 * 2; // = 4 🙂
%Инфиксный оператор получения остатка от деления. Делит левый аргумент на правый и возвращает остаток от деленияint a = 15 % 11; // = 4
++Унарный оператор инкремента. Увеличивает значение аргумента на единицуint a = 11; a++;
Унарный оператор декремента. Уменьшает значение аргумента на единицуint a = 11; a—;

Пример работы с арифметическими операторами:

Отдельно нужно уделить внимание операторам ++ и — . В зависимости от того, где они стоят (до переменной или после), меняется их поведение. Если оператор префиксный, то сначала будет изменено на единицу значение переменной, и только потом будет выполнено следующее действие с ней. Для постфиксного варианта все будет наоборот: сначала значение переменной будет использовано в следующей операции, а уже потом изменено на единицу.

Рассмотрим это подробнее на примере:

После выполнения этого кода значения переменных будут следующие: a — 2, b — 4, c — 5. При инициализации переменной с , сначала мы берем значение переменной а (1) и прибавляем к нему значение переменной b . И только потом значение а будет увеличено на единицу.

Попробуем поставить оператор ++ перед переменной а . Теперь после выполнения кода значений будут такие: a — 2, b — 4, c — 6. Так как мы сначала увеличили значение а на единицу, а уже потом использовали его в сложении с b .

Все операторы сравнения в Java инфиксные, т.е. располагаются между операндами. Результатом их работы всегда является тип boolean ( true или false ). Рассмотрим их в следующей таблице:

ОператорОписаниеПример
==Проверяет равенство аргументов. Если операнды равны, возвращает true . Для ссылочных типов проверяет лишь равенство ссылок, а не значений. Для сравнения значений необходимо использовать метод equals() (мы обсудим это в одной из следующих тем)boolean a = 15 == 13; // false
!=Проверяет неравенство аргументов. Если операнды НЕ равны, возвращает true . Для ссылочных типов проверяет неравенство ссылок, для проверки значений нужно использовать метод equals() (мы обсудим это в одной из следующих тем)boolean a = 15 != 13; // true
>Возвращает true , если левый аргумент больше правого по значению. Работает только с числамиboolean a = 80 > 11; // = true
>=Возвращает true , если левый аргумент больше или равен правому по значению. Работает только с числамиboolean a = 2 >= 2; // = true 🙂
true , если левый аргумент меньше правого по значению. Работает только с числамиboolean a = 15
true , если левый аргумент меньше или равен правому по значению. Работает только с числамиboolean a = 11

Пример работы с операторами сравнения:

Наиболее часто такие операторы применяются совместно с условным оператором if . Об этом мы поговорим в следующей теме.

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

ОператорОписаниеПример
&&Инфиксный дизъюнктор (оператор «И»). Если оба операнда истинны (т.е. == true ), возвращает true . Следует отметить, что если выражение в левой части ложно, то правый аргумент уже не будет обрабатываться и проигнорируетсяboolean a = (15
ǀǀИнфиксный конъюнктор (оператор «ИЛИ»). Если хотя бы один из операндов истинен (т.е. == true ), возвращает true . Следует отметить, что если выражение в левой части истинно, то правый аргумент уже не будет обрабатываться и проигнорируетсяboolean a = (15 ǀǀ (3 == 3); // true
!Унарный оператор инверсии. Меняет истину на ложь и наоборотboolean a = !false; // = true

При работе с boolean данными операторы & и | выступают в качестве логических, а не битовых. Главное их отличие от && и || в том, что они всегда выполняют и левое, и правое выражение, независимо от их значений.

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

ОператорОписаниеПример
&Инфиксный оператор ANDint a = 123 & 65;
ǀБинарный оператор ORint a = 123 ǀ 65;
^Инфиксный оператор XORint a = 123 ^ 65;
Префиксный оператор побитового дополненияint a =

65;

int a = 123
>>Инфиксный оператор арифметического сдвига вправоint a = 123 >> 3;
>>>Инфиксный оператор нулевого сдвига вправоint a = 123 >>> 1;

Для указания значения переменной или константы используются операторы присваивания. Частично мы их рассматривали в предыдущей теме. Сейчас изучим другие возможности.

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

Помимо основного оператора присваивания = , есть и короткие записи для арифметических и побитовых операций. Их можно использовать когда перед присваиваиваем нужно получить текущее значение переменной и выполнить с ним какое-то действие. Например, мы хотим увеличить значение целочисленной переменной на 10. Мы можем сделать это так:

вторую строку можно укоротить, если использовать специальный оператор присваивания += . И код будет выглядеть так:

В данном случае оператор присваивания сначала выполнит сложение a + 10 и только потом присвоит полученный результат переменной a .

Аналогичные операторы есть и для других случаев:

ОператорПримерАналог
+=a += 1;a = a + 1;
a++;
-=a -= 3;a = a — 3;
*=a *= 2;a = a * 2;
/=a /= 4a = a / 4;
%=a %= 5;a = a % 5;
aa = a
>>=a >>= 7a = a >> 7;
&=a &= 8a = a & 8;
^=a ^= 9a = a ^ 9;
ǀ=a ǀ = 10a = a ǀ 10;

Ключевое слово instanceOf используется для проверки отношения объекта к определенному классу. Подробнее об этом мы будем говорить в блоке про ООП.

Условный (тернарный) оператор

Этот оператор заметно отличается от всех рассмотренных. Во-первых, это тернарный оператор, т.е. работает он с тремя аргументами. Во-вторых, он уже ближе к управлению логикой приложения (Control Flow).

Основная задача условного оператора — выбор одного из двух выражений, опираясь на результат выполнения третьего. Схематично он выглядит так: операнд1 ? операнд2 : операнд3 , где операнд1 — переменная boolean или выражение, возвращающее этот тип; операнд2 выполняется, если операнд1 == true ; операнд3 выполняется, если операнд1 == false .

Нашел ошибку или есть что добавить? Обязательно напиши мне об этом, рад любой обратной связи.

Читать еще:  Знак или в java
Ссылка на основную публикацию
Adblock
detector