Руководство по Java Core. Базовые операторы. – PROSELYTE
Для манипулирования переменными в языке Java пердусмотрено множество опреаторов. Все опреаторы мы модем поделить на такие группы:
- Арифметические операторы
- Операторы сравнения
- Битовые поераторы
- Логические операторы
- Операторы присваивания
- Другие
Рассмотрим эти группы отдельно.
Арифметические операторы
Этот тип операторов используется для математических операций.
Представим, что у нас есть две целочисленные переменные (int) A = 50, B = 20.
Примеры:
+ (Сложение) | A + B = 70 |
– (Вычитание) | A – B = 30 |
* (Умножение) | A * B = 1000 |
/ (Деление) | A / B = 2 |
% (Остаток от деления) | A % B = 10 |
++ (Инкремент) | A++ = 51 |
— (Дикремент) | B– = 19 |
Операторы сравнения
Результатом оператора сравнения является логический тип boolean, который говорит нам, является ли данное утверждение правдой (true) или ложью (false).
Представим, что у нас есть две целочисленные переменные (int) A = 50, B = 20.
Примеры:
== (Равен) | (A == B) -> false |
!= (Не равен) | (A != B) -> true |
> (Больше, чем) | (A > B) -> true |
< (Меньше, чем) | (A < B) -> false |
>= (Больше, чем или равно) | (A >= B) -> true |
<= (Меньше, чем или равно) | (A <= B) -> false |
Битовые операторы
В языке Java существует ряд битовых операторов, которые поддерживают целочисленные типы данных.
Битовые операторы позволяют нам выполнять побитовые операции.
Представим, что у нас есть две целочисленные переменные (int) A = 50, B = 20. B) -> 0010 0110
Логические операторы
В языке Java поддерживаются 3 логических оператора, все они приведены таблице ниже.
Представим, что у нас есть две логические переменные (boolean) T = true и F = false.
&& (Логическое ‘И’) | (A && B) -> false |
|| (Логическое ‘ИЛИ’) | (A || B) -> true |
! (Логическое ‘НЕ’) | !(A || B) -> false |
Операторы присваивания
В языке Java есть 11 операторов присваивания. Рассмотрим их на примерах.
Представим, что у нас есть две целочисленные переменные (int) A = 50, B = 20 и некая переменная С, значение которой, пока не присвоено.
= | С = A + B ( C == 70 ) |
+= | A += B (A == 70) |
-= | A -= B (A == 30) |
*= | B *= A (B == 1000) |
/= | A /= B (A == 2) |
%= | A %= B (A == 10) |
<<= | B <<= 2 (B == 80) |
>>= | A >>= 2 (A == 12) |
&= | B &= 2 (B = B & 2 ) |
^= | A ^= 2 (A == 48) |
|= | A |= 3 (A == 51) |
Другие
К другим операторам в языке Java относится только 1. Это тернарный оператор ветвления IF.
Более подробно мы рассмотрим IF далее, а пока приведём общую форму записи:
Допустим у нас есть логическая переменная (boolean) isActive, значение которой нам неизвестно.
Пример:
int a = (isActive) ? 100 : 200.
Разъяснение:
Если isActive = true, тогда a = 100.
Если isActive = false, тогда a = 200.
В этом уроке мы рассмотрели операторы для манипулирования переменными в языке Java.
Более подробно с опрераторами в языке Java можно ознакомиться в спецификации языка Java (Java Language Specification).
В следующем уроке мы рассмотрим массивы в языке Java и из виды.
If-else в Java. Курс «Программирование на Java»
В Java оператор ветвления if-else имеет Си-подобный синтаксис: условное выражение заключается в круглые скобки, тело ветки – в фигурные.
if (логич_выражение) { выражение1; выражение2; … } else { выражениеN; … }
Если тело состоит из одного выражения, фигурные скобки можно не использовать.
if (логич_выражение) выражение1; else выражение2;
В случае множественного ветвления обычно используют вложение последующих веток if во внешние для них else с поднятием этого if к строке else.
if (…) { … } else if (…) { … } else if (…) { … } else { … }
Простыми логическими операторы стандартны: ==, !=, <, <=, >, >=.
Логические операторы И, ИЛИ, логическое НЕ записываются соответственно &&, ||, !. В Java эти операторы применимы только к булевому типу данных, то есть нельзя писать, например, !var
или a < 3 || var
, если var – целое или любой другой отличный от boolean тип. То же самое касается циклов: while (true) {}
будет работать, while (1) {}
– нет.
При сравнении примитивных типов сравниваются их значения. Так в следующем коде ветка if выполнится:
int a = 3; int b = 3; if (a == b) { System.out.println(1); }
В случае ссылочных типов сравниваются ссылки. Чтобы быть равными, они должны указывать на один и тот же объект.
package info.younglinux.java; public class Logic { public static void main(String[] args) { Message a = new Message("Hello"); Message b = new Message("Hello"); Message c = b; if (a == b) { System.out.println("a == b"); } if (b == c) { System.out.println("b == c"); } } } class Message { private String m = ""; Message(String str) { this.m = str; } String getMessage() { return this.m; } }
В приведенной программе на экран будет выведено только b == c, так как обе переменные указывают на один и тот же объект. В то время как a и b – разные объекты.
В Java есть сокращенный вариант условного оператора для случая, когда есть две ветки – if и else, каждая включает только одно выражение, а результат выражений обоих веток может быть присвоен переменной одного типа. Такой оператор называется тернарным (ternary – тройной).
import java.util.Scanner; public class Ternary { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int a = scan.nextInt(); int b = a > 10 ? a : a + 10; System.out.println(b); } }
В выражении int b = a > 10 ? a : a + 10;
проверяется условие, стоящее до знака вопроса. Если оно истинно, то переменной b присваивается результат выражения, находящегося между знаками вопроса и двоеточия. Если условие ложно, то присваивается результат выражения, находящегося после двоеточия.
Условный оператор Boolean в Java
Логический оператор boolean имеет одно из двух значений: true или false (истина или ложь), да или нет, 1 или 0. В этом уроке мы рассмотрим на практике этот оператор, а также протестируем на отрицание нашу переменную.
В Java этот тип переменной для логических значений записывается так:
boolean user = true;
Таким образом, вместо того, чтобы вводить int или double или string, вы просто вводите логическое значение (первая строчная буква «b»). После имени вашей переменной вы можете присвоить значение true или false.
Обратите внимание, что оператор присваивания представляет собой один знак равенства (=). Если вы хотите проверить, имеет ли переменная значение, вам нужно использовать два знака равенства (==).
Запустите этот простой код:
boolean user = true; if(user == true) { System.out.println("Это истина"); } else { System.out.println("Это ложь"); }
Таким образом, первый оператор if проверяет, имеет ли переменная user значение true. Часть else проверяет, является ли она ложной. Вам не нужно говорить «else if (user == false)».
В итоге, если что-то не так, то это ложь. Так что вы можете просто использовать что-то другое – в Java существует только два варианта логических значений boolean.
Кроме это для boolean в Java подходит следующий оператор сравнения — это ! (означает «не»).
Посмотрите на следующий код:
boolean user = true; if(!user) { System.out.println("Это ложь"); } else { System.out.println("Это истина"); }
Этот код почти такой же, как и предыдущий, за исключением этой строки:
if(!user) {
На этот раз у нас есть оператор НЕ перед переменной user. Оператор НЕ — это один восклицательный знак (!), идущий
Это тестирование на отрицание, которое означает, что Java-программа тестирует противоположность того, что на самом деле является значением.
Поскольку переменная user установлена в true, тогда !user будет проверять наличие ложных значений. Если для user установлено значение false, то !user будет проверять истинные значения. Подумайте об этом так: если что-то НЕ верно, то что это? Или если это не ложь, то что?
Урок о Boolean в Java короткий, так как достаточно простой. В следующей части мы рассмотрим операторы Java Switch.
Арифметические операторы java
Подробности- Подробности
- Категория: Java
- Просмотров: 11585
|
Сложение с присваиванием
x += a, равносильно x = x + a.
Вычитание с присваиванием (-=) — вычитает правый операнд из левого. Пример:
x -=a, равносильно x = x — a.
Деление по модулю (%) — остаток от деления. Пример:
8%3=2, т.е. 8/3 равно 2, с остатком 2
Инкремент (++) — увеличение значения на 1. Пример:
x=10;
x++;
print x;
результат 11
x=10;
x—;
print x;
результат 9
- < Назад
- Вперёд >
Добавить комментарий
java for while
For example: The Java Do-While loop is almost the same in While Loop. Java do-while loop is just the extended version of the while loop which is discussed above. In our previous post, we learned what are the conditional statements and how to use If, Else If and Else statements. The while statement will then test the condition. In this tutorial, you will learn what are the looping statements in Java such as the For loop, While loop and Do-While loop, and how they alter the behavior of your program. For example if we are asked to take a dynamic collection and asked to iterate through every element, for loops would be impossible to use because we do not know the size of … The Java while loop is to iterate a code block for a given number of times till the condition inside a loop is False. The Code Execution statements block is mostly coded to increase or decrease the variable that was initialized in the Initialization block. Here in step 4, we set, After incrementing our variable, it will continue the loop and go again to step 2. The program will continue this process until the expression evaluates to false, after which point the whileloop is halte… See Java Language Changes for a summary of updated language features in Java … These are used if you are executing the same line of codes repeatedly.
Asiatische Rezepte Mit Huhn Und Kokosmilch, Hautklinik Regensburg Dermatologie, El Greco Steppach Speisekarte, Zügig Am Bauch Abnehmen, ärzte Diako Flensburg,
Java-операторов
Операторы Java
Операторы используются для выполнения операций с переменными и значениями.
В приведенном ниже примере мы используем +
оператор для сложения двух значений:
Хотя оператор +
часто используется для сложения двух значений, как в примере выше, его также можно использовать для сложения переменной и значения или переменной и другой переменной:
Пример
int sum1 = 100 + 50; // 150 (100 + 50)
int sum2 = сумма1 + 250; // 400 (150 + 250)
int sum3 = сумма2 + сумма2; // 800 (400 + 400)
Попробуй сам »
Java делит операторов на следующие группы:
- Арифметические операторы
- Операторы присваивания
- Операторы сравнения
- Логические операторы
- Побитовые операторы
Арифметические операторы
Арифметические операторы используются для выполнения общих математических операций.
Оператор | Имя | Описание | Пример | Попробуй |
---|---|---|---|---|
+ | Дополнение | Складывает два значения | х + у | Попробуй » |
– | Вычитание | Вычитает одно значение из другого | х — у | Попробуй » |
* | Умножение | Умножает два значения | х * у | Попробуй » |
/ | Дивизион | Делит одно значение на другое | х / у | Попробуй » |
% | Модуль упругости | Возвращает остаток от деления | х% у | Попробуй » |
++ | Прирост | Увеличивает значение переменной на 1 | ++ x | Попробуй » |
– | Декремент | Уменьшает значение переменной на 1 | — х | Попробуй » |
Операторы присваивания Java
Операторы присваивания используются для присвоения значений переменным.
В приведенном ниже примере мы используем оператор присваивания ( =
)
присвоить значение 10 переменной с именем x :
Оператор присваивания сложения ( + =
) добавляет значение переменной:
Список всех операторов присваивания:
Операторы сравнения Java
Операторы сравнения используются для сравнения двух значений:
Логические операторы Java
Логические операторы используются для определения логики между переменными или значения:
Оператор | Имя | Описание | Пример | Попробуй |
---|---|---|---|---|
&& | логический и | Возвращает истину, если оба утверждения верны | x <5 && x <10 | Попробуй » |
|| | логический или | Возвращает истину, если одно из утверждений истинно | x <5 || х <4 | Попробуй » |
! | Логическое не | Обратный результат, возвращает false, если результат истинный | ! (X <5 && x <10) | Попробуй » |
Операторы (Руководства по Java ™> Изучение языка Java> Основы языка)
Учебники по Java были написаны для JDK 8. Примеры и методы, описанные на этой странице, не используют улучшений, представленных в более поздних версиях, и могут использовать технологии, которые больше не доступны.
Обзор обновленных языковых функций в Java SE 9 и последующих выпусках см. В разделе «Изменения языка Java».
См. Примечания к выпуску JDK для получения информации о новых функциях, улучшениях, а также удаленных или устаревших параметрах для всех выпусков JDK.
Теперь, когда вы узнали, как объявлять и инициализировать переменные, вы, вероятно, захотите узнать, как сделать с ними что-то .Хорошее начало — изучение операторов языка программирования Java. Операторы — это специальные символы, которые выполняют определенные операции с одним, двумя или тремя операндами , а затем возвращают результат.
По мере того, как мы исследуем операторы языка программирования Java, вам может быть полезно заранее знать, какие операторы имеют наивысший приоритет. Операторы в следующей таблице перечислены в порядке приоритета. Чем ближе к верхнему краю таблицы находится оператор, тем выше его приоритет.Операторы с более высоким приоритетом оцениваются перед операторами с относительно более низким приоритетом. Операторы в одной строке имеют одинаковый приоритет. Когда в одном и том же выражении появляются операторы с равным приоритетом, должно определяться правило, которое вычисляется первым. Все бинарные операторы, кроме операторов присваивания, оцениваются слева направо; операторы присваивания оцениваются справа налево.
Операторы | Приоритет |
---|---|
постфикс | выражение ++ выражение - |
одинарный | ++ выражение - выражение + выражение - выражение ~! |
мультипликативный | * /% |
добавка | + - |
смена | << >> >>> |
реляционный | <> <=> = instanceof |
равенство | ==! = |
побитовое И | и |
побитовое исключающее ИЛИ | ^ |
побитовое включительно ИЛИ | | |
логическое И | && |
логическое ИЛИ | || |
тройной | ? : |
назначение | = + = - = * = / =% = & = ^ = | = << = >> = >>> = |
В программировании общего назначения одни операторы появляются чаще, чем другие; например, оператор присваивания « =
» встречается гораздо чаще, чем беззнаковый оператор сдвига вправо « >>>
». Имея это в виду, нижеследующее обсуждение в первую очередь фокусируется на операторах, которые вы, скорее всего, будете использовать на регулярной основе, и заканчивается акцентом на менее распространенных. Каждое обсуждение сопровождается примером кода, который вы можете скомпилировать и запустить. Изучение его результатов поможет закрепить то, что вы только что узнали.
Написание оператора Kubernetes на Java: часть 1
Часть 1: Что такое оператор Kubernetes?
Недавно мы опубликовали первую альфа-версию нашего оператора агента Instana, созданную с использованием Quarkus и грядущего клиентского расширения Quarkus Kubernetes.В этой серии блогов мы хотели бы поделиться своим опытом и показать, как эти технологии могут использоваться для реализации оператора Kubernetes в Java.
Серия состоит из трех частей:
Это часть 1, знакомство с операторами Kubernetes.
Что такое контроллер Kubernetes?
Прежде чем переходить к операторам, мы должны взглянуть на контроллеры Kubernetes. Контроллеры — один из основных строительных блоков Kubernetes. Есть несколько десятков встроенных контроллеров, все из которых работают на мастере Kubernetes в поде с именем kube-controller-manager
в пространстве имен kube-system
.
Одним из таких встроенных контроллеров является контроллер набора реплик . Его работа — заботиться о наборах реплик. Ниже приведен типичный пример ресурса набора реплик:
apiVersion: apps / v1
вид: ReplicaSet
метаданные:
имя: куард
спецификации:
реплик: 3
селектор:
matchLabels:
имя: куард
шаблон:
метаданные:
ярлыки:
имя: куард
спецификации:
контейнеры:
- имя: куард
изображение: gcr.io/kuar-demo/kuard-amd64:1
Если это кажется вам незнакомым, то потому, что вы обычно не создаете наборы реплик явно.Вы создаете Deployment
, а встроенный контроллер развертывания создает для вас ReplicaSet
. Развертывания делают больше, чем просто создают наборы реплик. Например, развертывания реализуют скользящие обновления. Наборы реплик имеют единственную цель: они определяют количество из реплик
, то есть желаемое количество работающих подов.
Контроллер набора реплик следит за тем, чтобы количество модулей соответствовало количеству реплик
, определенных в наборе реплик.Если Pod
удален, контроллер набора реплик запускает новый. Если набор реплик изменен, контроллер набора реплик добавляет или удаляет поды, чтобы вернуться к желаемому количеству реплик.
Что такое оператор?
В приведенном выше примере контроллера набора реплик показаны наиболее важные функции, реализованные контроллерами:
- Наблюдаем за первичным ресурсом , которым в этом примере является
ReplicaSet
. - Наблюдаем за вторичным ресурсом , которым в этом примере является блок
Pod
. - Взаимодействие с сервером API : всякий раз, когда создается или обновляется
ReplicaSet
, или всякий раз, когда создается или удаляется модульPod
, контроллер набора реплик связывается с сервером API и создает или удаляет модули до тех пор, пока желаемое состояние не будет восстановлено .
Эти концепции реализованы в Kubernetes универсальным и расширяемым образом. Вы можете создавать свои собственные пользовательские ресурсы и писать свои собственные пользовательские контроллеры, отслеживающие эти ресурсы и взаимодействующие с сервером API.
Оператор — это настраиваемый контроллер с акцентом на , работающий с конкретным приложением .
Хорошим примером такого приложения является распределенное хранилище ключей / значений. Kubernetes предоставляет развертывания (или наборы реплик) для увеличения количества подов. Однако для конкретного хранилища ключей / значений могут потребоваться дополнительные шаги при добавлении модулей, например повторная балансировка данных. Чтобы реализовать это, вы можете создать свой собственный ресурс (аналогичный ReplicaSet
, но с конфигурацией для конкретного приложения), и вы можете реализовать свой собственный контроллер (например, контроллер набора реплик, но позаботившись о повторной балансировке, когда Pods добавляются или удаляются).Этот настраиваемый контроллер будет оператором для хранилища ключей / значений.
Инструменты разработки для создания операторов
С точки зрения высокого уровня, операторы — это приложения, взаимодействующие с сервером Kubernetes API через HTTPS. Они могут быть написаны на любом языке программирования и могут быть развернуты внутри кластера или вне кластера. Однако наиболее распространено и удобнее объединить их в образ Docker и запустить в кластере.
Поскольку операторы реализуют функциональность, аналогичную встроенным контроллерам, естественным выбором является повторное использование тех же библиотек, которые Kubernetes использует для внутренних целей. Это источник SDK оператора CoreOS. Он предоставляет инструменты для генерации необходимого шаблонного кода и использует внутренние библиотеки Kubernetes в качестве зависимостей. Поскольку Kubernetes написан на Go, операторы также написаны на Go.
Для разработчиков Java Quarkus и предстоящее клиентское расширение Kubernetes представляют собой многообещающую альтернативу экосистеме Go. Приложения Java, созданные с помощью Quarkus, можно скомпилировать в собственные исполняемые файлы, аналогичные двоичным файлам Go. Это позволяет создавать небольшие образы Docker с быстрым запуском.Более того, предстоящее расширение клиента Kubernetes реализует большую часть функций, необходимых для отслеживания ресурсов и взаимодействия с сервером API.
В следующем посте в блоге этой серии будет показано, как настроить проект Quarkus с клиентским расширением Kubernetes. В части 3 будет показано, как реализовать типичные функции контроллера, такие как отслеживание обновлений пользовательских ресурсов.
Сборка мусора
В качестве примечания, я хотел бы представить ссылки владельцев и сборку мусора .Во многих случаях встроенной сборки мусора Kubernetes достаточно для очистки ресурсов, созданных операторами, поэтому операторы не нуждаются в явной очистке.
В Kubernetes каждый ресурс может быть аннотирован ссылкой на владельца. Например, когда контроллер набора реплик создает Pod
, он устанавливает ReplicaSet
в качестве ссылки владельца для этого Pod
:
собственник
- apiVersion: apps / v1
blockOwnerDeletion: true
контроллер: правда
вид: ReplicaSet
имя: куард
uid: aa8ecdff-9989-11e9-9cc6-0242806076bd
Когда набор реплик удален, контроллеру не нужно ничего делать.Kubernetes неявно удалит все ресурсы, для которых реплика установлена в качестве ссылки владельца, таким образом завершая работу Pod’ов, связанных с этим набором реплик.
Операторы должны адаптировать этот механизм и использовать настраиваемый ресурс в качестве ссылки владельца для всех сгенерированных ресурсов. Таким образом, всякий раз, когда пользователь удаляет настраиваемый ресурс, Kubernetes позаботится об удалении всех связанных ресурсов. Это работает, даже если оператор больше не работает.
Сводка
В этом блоге представлены операторы.Оператор — это настраиваемый контроллер с акцентом на , работающий с конкретным приложением .
В следующем посте показано, как настроить проект Quarkus с помощью расширения Kubernetes Client. В части 3 мы покажем, как реализовать специфические для оператора функциональные возможности, такие как просмотр пользовательских ресурсов.
операторов Java с приоритетом и ассоциативностью
Операторы Java с приоритетом и ассоциативностью Этот файл содержит таблицу всех Java
операторы вместе с их приоритетом
и их ассоциативность.Таблица
расположены от самого высокого до самого низкого приоритета
по мере продвижения сверху вниз. Столбец P
содержит
приоритет, а столбец A
показывает ассоциативность (слева ( L
)
или право ( R
)) оператора.
Операторы между пунктирными линиями имеют одинаковые
«уровень приоритета». Содержание
таблица была взята из 4-го издания
«Java в двух словах» Дэвида Фланагана, опубликованная
пользователя O’Reilly.
P A Оператор Тип (ы) оператора Операция выполнена -------------------------------------------------- -------------------- 15 л.объект, член объект член доступ [] массив, доступ к элементу массива int (args) метод, вызов метода arglist ++, - постинкремент переменной, декремент -------------------------------------------------- -------------------- 14 R ++, - предварительное приращение переменной, декремент +, - число унарный плюс, унарный минус ~ целочисленное побитовое дополнение ! логическое логическое НЕ -------------------------------------------------- -------------------- 13 R новый класс, создание объекта arglist (тип) тип, любое приведение (преобразование типа) -------------------------------------------------- -------------------- 12 L *, /,% число, умножение числа, деление, остаток -------------------------------------------------- -------------------- 11 L +, - число, сложение чисел, вычитание + строка, любая конкатенация строк -------------------------------------------------- -------------------- 10 L> целое, целочисленный сдвиг вправо с расширением знака >>> целочисленный, целочисленный сдвиг вправо с нулевым расширением -------------------------------------------------- -------------------- 9 L,> = число, число больше, больше или равно ссылка instanceof, сравнение типа типа -------------------------------------------------- -------------------- 8 L == примитив, примитив равен (имеют одинаковые значения) ! = примитив, примитив не равен (имеют разные значения) == ссылка, ссылка равна (относится к тому же объекту) ! = ссылка, ссылка не равна (относится к разным объектам) -------------------------------------------------- -------------------- 7 L & целое, целое побитовое И & логическое, логическое логическое И -------------------------------------------------- -------------------- 6 L ^ целое, целое побитовое исключающее ИЛИ ^ логическое, логическое логическое XOR -------------------------------------------------- -------------------- 5 л | целое, целое побитовое ИЛИ | логическое, логическое логическое ИЛИ -------------------------------------------------- -------------------- 4 L && логическое, логическое условное И -------------------------------------------------- -------------------- 3 л || логическое, логическое условное ИЛИ -------------------------------------------------- -------------------- 2 R?: Логический, любой, любой условный (тернарный) оператор -------------------------------------------------- -------------------- 1 R = переменная, любое присвоение * =, / =,% = переменная, любое присвоение с операцией + =, - = > =, >>> =, & =, ^ =, | = -------------------------------------------------- --------------------
Приоритет операторов — это то, что мы иногда принимаем как должное, особенно если мы хорошо знакомы с стандартные правила приоритета для общих арифметических операторов. Но слишком покладистые могут подвергнуть нас некоторой опасности, особенно в языки, такие как Java и C ++, которые имеют такое множество операторов, стоит быть начеку.
Список всех тем
Почему в Java / C ++ нет оператора мощности?
На этот вопрос отвечает C ++: Страуструп, «Дизайн и эволюция C ++» обсуждает этот вопрос в разделе 11.6.1, стр. 247-250.
Были общие возражения против добавления нового оператора. Это добавило бы к и без того запутанной таблице приоритетов., который явно никому не нравился.
Страуструп снова рассмотрел **
, но это уже имеет значение в C: a ** p
равно a
раз, независимо от того, на что указывает p
, и char ** c;
объявляет c
как указатель на указатель на char
. Введение **
в качестве токена, означающего «объявление указателя на указатель на», «умножение на то, на что указывает следующее» (если это указатель) или «возведение в степень» (если за ним следует число), вызвало проблемы с приоритетом. a / b ** p
пришлось бы разобрать как a / (b ** p)
, если бы p было числом, но (a / b) * * p
, если бы p было указателем, поэтому это будет иметь разрешить в парсере.
Другими словами, это было бы возможно, но это усложнило бы таблицу приоритетов и синтаксический анализатор, а оба они уже слишком сложны.
Я не знаю истории о Java; все, что я мог сделать, это спекулировать. Что касается C, с которого он начался, все операторы C легко переводятся в код сборки, частично для упрощения компилятора и частично для того, чтобы не скрывать трудоемкие функции в простых операторах (тот факт, что operator + ()
и другие могут скрыть большую сложность и снижение производительности было одной из первых жалоб на C ++).
Тернарный оператор Java — Linux Hint
Тернарный оператор может использоваться как альтернатива операторам if-else и if-else-if. Он называется тернарным оператором, потому что для выполнения любой задачи требуется три операнда. Если условное выражение, используемое в тернарном операторе, возвращает истину, то оно выполняет конкретный оператор; в противном случае он выполняет другой оператор. Символы ‘?’ и ‘:’ используются для определения троичного оператора. Тернарный оператор лучше использовать для решения очень простой задачи вместо оператора if.В этом руководстве показаны различные варианты использования тернарного оператора в java.Синтаксис:
Здесь, если условный оператор возвращает истину, он выполняет оператор, определенный в левой части «:», а если он возвращает ложь, то он выполняет оператор, определенный в правой части «:».
Пример-1: Использование тернарного оператора с одним условием
В следующем примере показано очень простое использование тернарного оператора, который можно использовать для замены оператора if-else.В качестве входных данных будет приниматься целочисленное значение, а тернарный оператор используется для проверки того, что значение больше или равно 80 или нет. Если тернарное условие вернет истину, то оно вернет оценку; в противном случае он вычислит, сколько отметок необходимо, чтобы получить 80 и вернуться к переменной сообщения , которая печатается позже.
// Импортировать пакет сканераimport java.util.Scanner;
public class ternary1 {
public static void main (String [] args) {
// Создание объекта сканера
Scanner in = new Scanner (System.в);
System.out.print («Введите свои оценки:»);
// Снимаем оценки у пользователя
int mark = in.nextInt ();
// Сохраняем строковое значение на основе входного значения
String message = (mark> = 80)? «Ваша оценка A +»: «Вам нужно» + (80 баллов) +
«, чтобы получить A +»;
System.out.println (сообщение);
// Закройте объект сканера
дюймов.близко();
}
}
Выход:
После запуска кода 85 принимается как входное значение, превышающее 80. Итак, здесь печатается значение оценки.
Если в качестве входных данных берется 75, то тернарное условие возвращает false и вычисляет, сколько оценок требуется для получения A + и печати.
Пример-2: Использование тернарного оператора с несколькими условиями
В следующем примере показано использование тернарного оператора с двумя условиями, и если оба условия возвращают истину, он вернет конкретный текст; в противном случае он вернет другой текст в переменную val , который будет напечатан позже.
public class ternary2 { public static void main (String [] args) {
// Назначить строковое значение
String name = «Abrar Fahad»;
// Присваиваем числовое значение
int id = 22;
/ * Сохранить строковое значение на основе
* возвращаемое значение условия
* /
String val = (name.equals («Abrar Fahad») && id == 22)?
«Вы выбраны»: «Вы не выбраны»;
// Распечатайте переменную
System.out.println (val);
}
}
Выход:
Согласно коду, тернарное условие вернет истину, и после выполнения кода появится следующий вывод.
Пример-3: Использование тернарного оператора для поиска максимального значения
Нахождение максимального значения между двумя числами с помощью тернарного оператора показано в следующем примере. Два целых значения будут взяты от пользователей и сравнены в тернарном условии, чтобы найти максимальное значение.Далее будет напечатано максимальное значение с форматированным текстом.
// Импортировать пакет сканераimport java.util.Scanner;
public class ternary3 {
public static void main (String [] args) {
// Создание объекта сканера
Scanner in = new Scanner (System.in);
System.out.print («Введите число:»);
// Возьмите первое число
int num1 = in.nextInt ();
System.out.print («Введите число:»);
// Возьмите второе число
int num2 = in.nextInt ();
// Сохраняем максимальное значение
int max_val = (num1> num2)? число1: число2;
// Вывести максимальное значение
System. out.println («Максимальное число:» + max_val);
// Закройте объект сканера
in.close ();
}
}
Выход:
23 и 79 принимаются в качестве входных данных после выполнения кода, и печатается максимальное значение.
Пример-4: Использование вложенного тернарного оператора
Вложенный тернарный оператор может использоваться как альтернатива «if-else-if» statement. Использование вложенного тернарного оператора показано в следующем примере. Здесь целочисленное значение будет принято как входное и сохранено в переменной mark . Значение отметок будет проверяться в первом тернарном условии, и если оно вернет false, то будет проверяться во втором тернарном условии и так далее.Если все тернарные условия возвращают false, тогда он вернет последний текст тернарного оператора. Переменная grade используется для хранения возвращаемого значения троичного выражения, которое позже будет напечатано в качестве вывода.
// Импортировать пакет сканераimport java.util.Scanner;
public class ternary4 {
public static void main (String [] args) {
// Создаем объект сканера
Scanner in = new Scanner (System.in);
Система.out.print («Введите свои оценки:»);
// Снимаем отметки у пользователя
int mark = in.nextInt ();
// Сохраняем строковое значение на основе входного значения
String grade = (mark> = 90)? «Ваша оценка A +»:
(баллы> = 80)? «Ваша оценка B +»:
(баллы> = 70)? «Ваша оценка C +»:
(баллы> = 75)? «Ваша оценка D»: «Вы проиграли»;
Система.out.println (оценка);
// Закройте объект сканера
in.close ();
}
}
Выход:
76 принимается в качестве входных данных после выполнения кода, и третье условие тернарного оператора стало истинным на основе входного значения, и соответствующий текст будет напечатан.
Далее 60 принимается как вход, и все тернарные условия возвращают ложь. Итак, печатается последний текст тернарного выражения.
Вывод:
Использование тернарного оператора вместо «if-else» и «if-else-if» во многих случаях делает код коротким и эффективным. Так что лучше использовать его для решения простых задач. В этом руководстве на простых примерах объясняются различные варианты использования тернарного выражения. Я надеюсь, что концепция тернарного оператора и то, как его можно использовать в Java-коде, будут поняты после прочтения этого руководства.
Java Operators — Руководство для начинающих с примерами
операторов Java, различных типов операторов и порядок операций.Следующий пост в основном будет касаться новичков , которые плохо знакомы с Java и хотят изучить основы. Если у вас есть сомнения относительно операторов Java, оставьте комментарий в конце сообщения или свяжитесь с нами. Наши эксперты по Java могут вам помочь.
Что такое операторы Java?
Операторы Java: в любом языке программирования (и в математике ) мы используем некоторые символы для представления операции (вычисление) .
Предположим, если мы хотим выполнить сложение, , тогда мы используем символ »+« . Аналогично, когда мы хотим выполнить вычитание, мы используем символ »-« Эти символы известны как математические операторы.У нас есть разные типы операторов в java. В каждом типе (группе) есть символы (операторы).
Подробнее:
Различные типы операторов Java с примерами
В зависимости от типа вычислений с операторами Java они делятся на следующие типы:
- Арифметические операторы
- Операторы отношения
- Логические операторы
- Условные операторы
- Операторы присваивания
- Операторы группировки
- Операторы увеличения / уменьшения
- Побитовые операторы
- и т. Д.
Пошаговое руководство и полное объяснение различных типов операторов Java с подробным анализом
1) Арифметические операторы
[wp_ad_camp_3]
- +
- –
- *
- /
- %
Сложение, вычитание, умножение и деление — это основные математические операции.Операторы java связаны с этими основными операциями.
Мы знаем, что »+« используется для сложения, — используется для вычитания, а * используется для умножения. Эти три операции приведут к одному значению.
Например, сложение 13 и 9 приведет к 21, что является одиночным значением . Точно так же вычитание 9 из 13 приведет к 4, что является единственным значением.
Тот же тип единственного значения 52 получится, когда мы умножим эти два значения.
Но деление — это правильный расчет , в результате которого мы получаем два значения (частное и остаток) . Предположим, что если мы разделим 13 на 4, то 3 будет частным, а 1 — остатком.
Аналогично, когда мы делим 47 на 6, тогда 7 — это частное, а 5 — остаток. В программировании мы используем остаток (после деления) во многих местах. Таким образом, есть два символа (операторы Java) для получения результата после деления. Символ »/« »используется для получения частного, а символ« »%« используется для получения остатка.
Эти операторы Java могут применяться к любым данным числового типа, а также к данным типа char . Но эти операторы Java не могут быть реализованы для данных логического типа.
Пример №1: Арифметика
1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 18 19 20 21 22 23 24 25 26 27 | class ArthimeticBasics1 { public static void main (String args []) { int a = 1 + 1; int b = a * 2; int c = b / 2; интервал d = c-1; int e = -d; Система. out.println (а); // 2 System.out.println (b); // 4 System.out.println (c); // 2 System.out.println (d); // 1 System.out.println (e); // — 1 } } |
Пример № 2: Арифметические операторы в Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 18 19 20 21 22 23 24 25 26 27 | class ArthimeticBasics { public static void main (String args []) { double a = 1 + 1; двойное b = a * 2; двойной c = b / 2; двойной d = c-1; двойной e = -d; Система.out.println (а); //2. 0 System.out.println (b); //4.0 System.out.println (c); //2.0 System.out.println (d); //1.0 System.out.println (e); //-1.0 } } |
Пример № 3: Арифметические операторы в Java
class ArthimeticBasics { public static void main (String args []) { int a = 53; двойной b = 53.5; System.out.println (% 10); // 3 System.out.println (b% 10); //3.5 } } |
2) Операторы отношения
- <
- <=
- > =
- ==
- ! =
Эти операторы сравнивают (проверяют связь) два значения и выдают в качестве результата логическое значение. В Java логическое (логическое) значение может быть истинным или ложным (в C эти логические значения представлены 1 и 0).
Пример:
- 13> 10 верно
- 13 <10 ложно
- 13 <= 10 ложно
- 13> = 10 ложно
- 13 == 10 ложно
- 13! = 10 верно
- 13 <13 ложно
- 13> 13 ложно
- 13 == 13 верно
- 13 <= 13 верно
- 13> = 13 верно
- 13! = 13 ложно
- ‘A’ == 65 верно
- ‘0’ == 48 верно
- ‘2’ == 2 ложно
Пример №1 Программа для операторов отношения на Java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 18 19 20 21 22 23 24 25 26 27 28 29 30 34 | class RelationalBasics { public static void main (String args []) { System. out.println (13> 10); // верно System.out.println (13 <= 10); // верно System.out.println (13> = 10); // верно System.out.println (13 == 10); // ложь System.out.println (13! = 10); // правда System.out.println (13> 13); // ложь System.out.println (13> = 13); // верно System.out.println (13 <= 13); // верно System.out.println (13 == 13); // верно System.out.println (13! = 13); // ложь System.out.println (‘A’ == 65); // истинное значение ascii для ‘A’равно 65 System.out.println (‘ 0 ‘== 48); // истинное значение ascii для’0’ равно 48 System.out.println (‘2’ == 2); // ложное значение ascii для ‘2’ равно 50 } } |
3) Логические операторы
- && логический И
- || логическое ИЛИ!
- ! логическое НЕ
Логические операторы Java также приводят к булевым значениям . Они используются для проверки «нескольких логических значений» как одной единицы. Предположим, снять некоторую сумму денег в банкомате; у нас должна быть карта, знать PIN-код и у нас должен быть достаточный баланс в банке.
В этом примере все три условия (наличие карты, знание PIN-кода, наличие баланса) должны выполняться для выполнения вывода. При написании программы для этой цели мы пишем такой оператор:
if (cardAvailability == true && validPin == true && balance> = requiredAmount) |
Здесь мы объединили «3 условия» , используя && .Когда нам нужно, чтобы все условия выполнялись, мы объединяем их с && .
В случае, если у нас есть ситуация, когда любое из условий является достаточным для выполнения, мы объединяем условия (выражения), используя || .
Предположим, что если мы хотим выполнить операцию, когда пользователь ввел ”x“ в нижнем или верхнем регистре, мы можем написать такой оператор, как
если (givenValue == ’x’ || givenValue == ’X’) |
иногда нам нужно инвертировать (перевернуть) логическое значение выражения. В этом случае ! может быть использован.
Таблица истинности для логических операторов Java:
ехр1 ехр2 ехр1 && ехр2 ехр1 || exp2! exp1! ехр2
правда правда правда правда ложь ложь
истина ложь ложь истина ложь истина
ложь правда ложь правда правда ложь
ложь ложь ложь ложь правда правда
Примеры программ №1: Логические операторы Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 18 19 20 21 22 23 24 25 26 27 28 29 30 3435 36 | class LogicalOperatorBasics { public static void main (String args []) { System. out.println (истина || истина); // правда System.out.println (true || false); // истина System.out.println (false || true); // верно System.out.println (false || false); // ложь System.out.println (true && true); // истина System.out.println (true && false); `// ложь System.out.println (false && true); // ложь System.out.println (ложь && ложь); // ложь System.out.println (! true); // ложь System.out.println (! false); // правда System.out.println (13> 10 || 13 <10); // истина (истина || ложь) System.out.println (13> 10 && 13 <10); // ложь (true && false) System.out.println (! 13> 10); // ошибка System.out.println (! (13 == 10)); // истина! (ложь) } } |
3) Условный оператор
У нас есть специальный оператор, который работает на основе истинности условия. Этот оператор Java известен как условный оператор . Этот оператор содержит 3 операнда , поэтому он также известен как троичный оператор .
Чтобы понять, сначала нам нужно обсудить известную операцию, например ”a = 10 + 20; « в этом выражении, результат 10 + 20 присваивается » a «.Точно так же в условной операции, если у нас есть выражение типа a = 10 == 20? 30: 40, результат 10 == 20? 30: 40 будет присвоен «a».
В этом выражении 10 == 20 — первый операнд, 30 — второй операнд, а 40 — третий операнд. Символ ? помещается между первым и вторым операндами, а символ «:» помещается между вторым и третьим операндами.
Фактический результат (значение) выражения — это либо второй операнд, либо третий операнд.
Это решение (второе или третье) принимается на основе первого операнда, который дает в результате истинное или ложное значение.
Если результатом является истина, результатом будет второй операнд, а если результатом будет ложь, то третий операнд будет результатом. В нашем примере 10 == 20 ложно, поэтому результатом будет третий операнд (40).
Значит, значение 40 присваивается «a».
Точно так же, если мы возьмем выражение a = 25 <40? 123: 456, тогда второй операнд (123) будет назначен на «a», так как результат условия (первый операнд) истинно.
Пример:
- 16 == 16? 13:10 результат будет 13
- 16! = 16? 13:10 результат будет 10
В этой операции второй и третий операнды должны быть одного типа.
Пример № 1 для условного:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 14 18 19 20 21 22 | class ConditionalOperationExample { public static void main (String args []) { int a = 1; Система. out.println ((a == 1)? true: false); // правда System.out.println ((a == 0)? true: false); // ложь System.out.println (true? 1: 2); // 1 System.out.println (ложь? 1: 2); // 2 System.out.println ((1 <2)? 1: 2); // 1 System.out.println ((1> 2)? 1: 2); // 2 } } |
Пример № 2: Условный оператор Java
class ConditionalOperationExample1 { public static void main (String args []) { int a = 1, b = 2, big; большой = a> b? A: b; Система.out.println («большее значение 1 и 2 =» + большой); // большее значение 1 и 2 равно 2 } } |
4) Операторы присвоения
- =
- + =
- — =
- * =
- / =
- % =
- << =
- >> =
- >>> =
- & =
- | =
- ^ =
Когда мы выполняем какую-либо операцию, обычно мы присваиваем результат выражения переменной. Для этого мы используем обычное присвоение (=).
Пример:
- а = 10;
- а = 10 + 20;
- а = 2 + 3 * 4-5;
Если мы хотим выполнить операцию с переменной и вернуть результат этой переменной, мы можем использовать ярлык (комбинированное присваивание) .
Например, если мы хотим написать выражение типа ”a = a + b; « то, что мы хотим, — это добавить a и b, а результат снова поместить в a.
Точно так же мы можем захотеть выполнить Java-операцию, например length = length * 3 или currentValue = currentValue + exp1 * exp2; во всех этих случаях мы можем использовать комбинированные java-операторы присваивания.
Пример назначения операторов Java:
- а = а + b; >>> можно записать как a + = b;
- длина = длина * 3; >> можно записать как длина * = 3;
- ”currentValue = currentValue + exp1 * exp2 может быть записано как currentValue + = exp1 * exp2; “
- n = n / 10; >> можно записать как n / = 10;
- val = val >> n; >> можно записать как val >> = n;
- а = а и б; >> можно записать как a & = b;
Пример программы Java для присвоения:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 14 18 19 20 21 22 23 24 25 26 27 28 29 30 34 35 36 37 38 39 40 41 42 43 44 45 46 47 51 52 53 54 55 56 57 58 59 60 61 62 63 9 0005 6465 | class AssignmentOperatorBasics { public static void main (String args []) { int a = 2; а = а + 4; Система. out.println (а); // 6 a + = 4; System.out.println (а); // 10 a = 16; а = а-4; System.out.println (а); // 12 a = 16; а- = 4; System.out.println (а); // 12 a = 26; а = а * 4; Система.out.println (а); // 104 a = 26; а * = 4; System.out.println (а); // 104 a = 36; а = а / 4; System.out.println (а); // 9 a = 36; а / = 4; System.out.println (а); // 9 a = 46; a = a% 4; Система.out.println (а); // 2 a = 46; a% = 4; System.out.println (а); // 2 } |
5) Операторы группировки
- () оператор отделения
- [] оператор массива
- . оператор ссылки (символ точки)
Оператор подразделения ()::
() можно использовать для группировки набора элементов как одного блока.Когда у нас есть выражение типа ”2 + 3 * 4“ , согласно нормальным приоритетам сначала выполняется 3 * 4, а результат (12) добавляется к 2.
Если мы сгруппируем 2 + 3 как одну единицу и напишем то же выражение, например (2 + 3) * 4, то эта единичная единица (результат 5) умножится на 4 и даст 20.
Пример для оператора установки:
- a + b / ((c — d) * (e + f))% г
- (3 + 4) / (5 + 6)
- (-b + Math.sqrt (b * b-4 * a * c)) / (2 * a)
Оператор массива []:
»[]« используются для работы с массивами.
Этот набор квадратных скобок используется для создания ссылки на массив или для доступа к элементу массива.
Пример оператора массива:
- int a []; при создании ссылки на массив
- int a []; при создании ссылки на массив
- a = новый int [10]; при создании объекта массива
- х = а [2]; при доступе к элементу массива. е2! e2
правда правда правда правда ложь ложь
истина ложь ложь истина правда истина
ложь правда ложь правда правда ложь
ложь ложь ложь ложь ложь правда
Эти операторы Java работают с отдельными битами чисел.Эти операторы java могут применяться только к целочисленному типу данных .
T Он не может применяться к данным типа float, double и boolean. Эти операторы используются для маскировки.
»&« используется для выполнения побитовой операции И над двумя заданными значениями.
Если мы хотим выполнить 25 и 78, тогда операция И выполняется над соответствующими битами чисел, и выдается результат.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
14
18
19
20
21
22
23
24
25
26
27
28
29
30
3435
36
37
38
39
40
41
42
43
44
class BitwiseOperation
{
public static void main (String args [])
{
// побитовое И
System. out.println (0 & 0); // 0
System.out.println (0 & 1); // 0
System.out.println (1 & 0); // 0
System.out.println (1 & 1); // 1
// поразрядное ИЛИ
System.out.println (0 | 0); // 0
System.out.println (0 | 1); // 1
System.out.println (1 | 0); // 1
System.1); // 0
// побитовое ОТРИЦАНИЕ
System.out.println (~ 1); // — 2
System.out.println (~ 0); // — 1
}
}
Пример для AND:
class BitwiseOperationAND
{
public static void main (String args [])
{
System.out.println (25 и 78); // 8
System.out.println (100 & 25); // 0
System.out.println (125 & 49); // 49
}
}
- 25 -> 00000000 00000000 00000000 00011001
- 78 -> 00000000 00000000 00000000 01001110
- 00000000 00000000 00000000 00001000 -> 8
- Так 25 и 78 это 8
Пример для OR:
class BitwiseOperationOR
{
public static void main (String args [])
{
System. out.println (25 | 78); // 95
System.out.println (100 | 25); // 125
System.out.println (125 | 49); // 125
}
}
Аналогично, 25 | 78 это
Пример:
- 25 -> 00000000 00000000 00000000 00011001
- 78 -> 00000000 00000000 00000000 01001110
- 00000000 00000000 00000000 01011111 -> 95
Пример для XOR:
class BitwiseOperationXOR
{
public static void main (String args [])
{
System.78 это 87
Пример:
- 25 -> 00000000 00000000 00000000 00011001
- 78 -> 00000000 00000000 00000000 01001110
- 00000000 00000000 00000000 01010111 -> 87
Пример побитовой операции сдвиг влево:
class BitwiseOperationLEFTSHIFT
{
public static void main (String args [])
{
System. out.println (25 << 3); // 200
System.out.println (2 << 5); // 64
System.out.println (2 << 3); // 16
}
}
<< используется для сдвига каждого бита влево на указанное количество ячеек. В примере 25 его битовая комбинация (занимающая 4 байта) будет 00000000 00000000 00000000 00011001.
Если мы сдвинем каждый бит на 3 позиции влево, то биты станут 00000000 00000000 00000000 11001000.Когда мы выполняем сдвиг влево для местоположений «n» , n бит на левом конце будет удалено, а n 0 будет добавлено на правом конце.
- 00000000 00000000 00000000 00011001 — 25
- 00000000 00000000 00000000 11001000 — 200
- Итак, мы можем сказать, что 25 << 3 - это 200
- Аналогично, 6 << 9 будет 3072
- 00000000 00000000 00000000 00000110 — 6
- 00000000 00000000 00001100 00000000 — 3072
Вместо того, чтобы выполнять все эти вычисления путем записи битов, мы можем найти значение с помощью формулы
x << y как x * 2 y
Пример:
- 25 << 3 как 25 * 2 3 равно 200
- 6 << 9 как 6 * 2 9 равно 3072
Пример для сдвига вправо:
class BitwiseOperationRIGHTSHIFT
{
public static void main (String args [])
{
System. out.println (25 >> 3); // 3
System.out.println (2 >> 5); // 0
System.out.println (2 >> 3); // 0
}
}
> также ведет себя так же, как <<, и разница заметна. Это (>>) сдвигает биты вправо на указанное количество ячеек.
Если мы сдвинемся на n позиций, крайние правые n битов будут удалены, и n нулей будут добавлены к положительным числам, а единицы будут добавлены к отрицательным числам на левом конце.Даже для этого мы можем применить формулу
Пример:
- 25 >> 3 как 25/2 3 это 3
- 6 >> 9 как 6/2 9 равно 0
- 500 >> 2 как 500/2 2 равно 125
- -500 >> 2, поскольку -500/22 равно -125
- -15 >> 1 как -15/2 1 равно -8 (да, это -8, но не -7)
- -5 >> 1 как -5/2 1 равно -3
- 5 >> 1, поскольку 5/21 равно 2 (да, 5 положительно, поэтому результат равен 2)
>>> похоже на >>, но только нули добавляются слева как для положительных, так и для отрицательных чисел.
7) Операторы увеличения и уменьшения
- ++
- –
Они используются для увеличения / уменьшения значения на 1. Обычно для увеличения значения в переменной x на 1 мы используем такой оператор, как x = x + 1;
То же утверждение можно записать как x + = 1; также с использованием комбинированного оператора присваивания. В качестве альтернативы мы можем использовать x ++ или ++ x для выполнения того же самого. Аналогично x = x-1; также можно записать как –x или x–.
Эти операторы Java следует применять только к переменным.Их нельзя применять к константам.
Пример:
- a ++ действителен
- 5 ++ не действует
- a ++++ недействителен
- a ++ + a ++ действительно
Как правило, все остальные унарные Java-операторы используются только в нотации префикса . Но эти унарные операторы Java можно использовать как в префиксной, так и в постфиксной нотации.
Пример:
- + a ~ a -a! A действительны
- а + а ~ а- а! не действительны
- a ++ ++ a a– –a действительны
Есть небольшая разница между работой префиксной и постфиксной нотации.
Когда в префиксной нотации используется ++ ; сначала выполняется приращение переменной, а затем полученное значение будет использовано в выражении.
Eg1 : int a = 5;
int b = ++ a; , здесь »a« сначала увеличивается (так что становится 6), а затем 6 присваивается b.
Eg2 : int x = 5;
Int y = ++ x + ++ x; здесь, с первым ++ x, увеличивается до 6, а вместо этого ++ x используется 6.Со вторым ++ x, x увеличивается до 7, и вместо него используется 7.
Итак, к моменту завершения обеих операций ++ выражение станет y = 6 + 7; так y становится 13.
Когда ++ используется в постфиксной нотации, сначала в выражении используется исходное значение (до приращения), затем будет происходить приращение.
Eg1: int a = 5;
Int b = a ++; здесь исходное значение a (5) используется как значение выражения a ++, а затем увеличивается на единицу.
Значит, b присваивается значение 5, а значение a будет 6.
Eg2: int x = 5;
Инт у = х ++ + х ++; здесь, с первым x ++, значение выражения становится 5, а x увеличивается до 6. При втором x ++ значение выражения будет 6 (к тому времени x равно 6), а x увеличивается до 7.
Таким образом, выражение станет y = 5 + 6; поэтому 11 присваивается y.
Пример № 1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
14
18
19
20
21
22
23
24
25
26
27
28
29
31
9000class IncDecOperation
{
public static void main (String args [])
{
int x = 1;
Система. out.println (x); // 1
x ++;
System.out.println (x); // 2
++ x;
System.out.println (x); // 3
int y = 3;
System.out.println (y); // 3
—y:
System.out.println (y); // 2
y—;
Система.out.println (y); // 1
}
Пример № 2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
14
14
18
19
20
21
22
23
class IncDecOperation
{
public static void main (String args [])
{
int x = 1;
Система.out.println (x); // 1
System.out.println (++ x); // 2
System. out.println (x ++); // 2 sop (x = 2), тогда x становится 3
System.out.println (- x); // 2
System.out.println (x—); // 2 sop (x = 2), x становится 1
System.out.println (x); // 1
}
}
Пример № 3:
class IncDecOperation
{
public static void main (String args [])
{
int x = 5;
интервал y = x ++ + x ++ + x ++; // y = 5 + 6 + 7; x = 8
Система.out.println (x); // 8
System.out.println (y); // 18
}
}
В зависимости от количества операндов, связанных с оператором, делятся на 3 типа
- Унарные операторы
- Двоичный ——–
- Тройной ——–
Работа с одиночным операндом называется унарным.