Условные или реляционные операторы Java
Описание
Если вам нужно изменить выполнение программы на основе определенного условия, вы можете использовать операторы «если». Реляционные операторы определяют отношения, которые один операнд имеет к другому. Именно они определяют условие равенства. Java предоставляет шесть реляционных операторов, которые перечислены в таблице ниже.
оператор | Описание | Пример (а = 10, б = 15) | Результат |
---|---|---|---|
== | Оператор равенства | A == B | ложный |
знак равно | Не равно оператору | а! = Ь | правда |
> | Лучше чем | а> Ь | ложный |
< | Меньше, чем | а <Ь | правда |
> = | Больше или равно | а> = Ь | ложный |
<= | Меньше или равно | а <= Ь | правда |
Результатом этих операций является логическое значение. Реляционные операторы чаще всего используются в выражениях, которые управляют оператором if и различными операторами цикла. Любой тип в Java, включая целые числа, числа с плавающей точкой, символы и логические значения, можно сравнить с помощью теста на равенство == и теста на неравенство! =. Обратите внимание, что в Java равенство обозначается двумя знаками равенства («==»), а не одним («=»).
В Java простейшим оператором, который вы можете использовать для принятия решения, является оператор if. Его самая простая форма показана здесь:
оператор if (условие); или же оператор if (условие) 1; еще заявление2;
Здесь условие является логическим выражением. Если условие истинно, то оператор выполняется. Если условие ложно, то заявление обойдено. Например, предположим, что вы объявили целочисленную переменную с именем someVariable, и вы хотите напечатать сообщение, когда значение someVariable равно 10. Блок-схема и java-код операции выглядят следующим образом:
if (someVariable ==10){
System.out.println("The Value is 10”);
}
У нас могут быть разные варианты операторов if.
Вложенные блоки if:
Вложенный оператор if - это оператор if, который является целью другого оператора if или else. Другими словами, мы можем рассмотреть один или несколько операторов if в одном блоке if для проверки различных условий. Например, у нас есть две переменные, и мы хотим проверить конкретные условия для обеих, мы можем использовать вложенные блоки if.
Java-код: перейти к редактору
public class NestedIfDemo {
public static void main(String[] args) {
int a =10;
int b =5;
if(a==10){
if(b==5){
System.out.println("Inside Nested Loop");
}
}
}
}
если - иначе если лестница:
Может возникнуть ситуация, когда нам нужно несколько раз проверить значение, чтобы найти точное условие соответствия. Ниже программа объясняет то же самое. Давайте посмотрим, есть ли у нас требование проверить, является ли значение переменной меньше 100, равно 100 или больше 100. Ниже код объясняет ту же логику, используя лестницу if-else-if.
Java-код: перейти к редактору
public class IfelseLadderDemo {
public static void main(String[] args) {
int a =120;
if(a< 100){
System.out.println("Variable is less than 100");
}
else if(a==100)
{
System.out.println("Variable is equal to 100");
}
else if (a>100)
{
System.out.println("Variable is greater than 100");
}
}
}
Выход:
Давайте рассмотрим пример, чтобы понять выше логические операторы и условные операторы. У нас есть требование напечатать результат в оценке, основанной на оценках, введенных пользователем. Мы принимаем данные от пользователя во время выполнения и оцениваем оценки. Эта программа также проверяет ввод и печатает соответствующее сообщение, если ввод является отрицательным или буквенным.
Java-код: перейти к редактору
import java.util.Scanner;
public class GradeCalculation {
public static void main(String[] args) {
int marks=0 ;
try{
//Scanner class is wrapper class of System.in object
Scanner inputDevice = new Scanner(System.in);
System.out.print("Please enter your Marks (between 0 to 100) >> ");
marks = inputDevice.nextInt();
//Checking input validity and grade based on input value
if(marks< 0){
System.out.println("Marks can not be negative: Your entry="+ marks );
}else if(marks==0){
System.out.println("You got Zero Marks: Go to ZOO");
}else if (marks>100){
System.out.println("Marks can not be more than 100: Your entry="+ marks );
}else if (marks>0 & marks< 35){
System.out.println("You need to work hard: You failed this time with marks ="+ marks);
}else if (marks>=35 & marks < 50){
System.out.println("Your score is not bad, but you need improvement, you got C Grade");
}else if (marks>=50 & marks < 60){
System.out.println("You can improve performance, you got C+ grade");
}else if (marks>=60 & marks < 70){
System.out.println("Good performance with B grade");
}else if (marks>=70 & marks < 80){
System.out.println("You can get better grade with little more efforts, your grade is B+");
}else if (marks>=80 & marks < 90){
System.out.println("Very good performance, your grade is A ");
}else if (marks>=90){
System.out.println("One of the best performance, Your grade is A+");
}
}catch (Exception e){
//This is to handle non-numeric values
System.out.println("Invalid entry for marks:" );
}
}
}
Выходы на основе пользовательского ввода:
Логические операторы короткого замыкания
Java предоставляет два интересных логических оператора, которых нет во многих других компьютерных языках. Это вторичные версии логических операторов И и ИЛИ, известные как логические операторы короткого замыкания. Два логических оператора короткого замыкания:
- && короткое замыкание И
- || короткое замыкание ИЛИ
Они используются для связывания маленьких логических выражений в более крупные логические выражения. && и || операторы оценивают только логические значения. Чтобы выражение AND (&&) было истинным, оба операнда должны быть истинными. Например, приведенный ниже оператор оценивается как true, так как оба операнда (2 <3) и второй (3 <4) оцениваются как true.
if ((2 <3) && (3 <4)) {}
Функция короткого замыкания оператора && названа так, потому что она не тратит свое время на бессмысленные оценки. Короткое замыкание && сначала оценивает левую часть операции (операнд один), и если оно принимает значение false, оператор && не утруждает себя взглядом на правую часть выражения (операнд два), так как оператор && уже знает что полное выражение не может быть правдой.
|| Оператор аналогичен оператору &&, за исключением того, что он оценивается как true, если ЛИБО из операндов имеет значение true. Если первый операнд в операции ИЛИ является истинным, результат будет истинным, поэтому короткое замыкание || не тратит время, глядя на правую часть уравнения. Если первый операнд ложен, короткое замыкание || должен оценить второй операнд, чтобы увидеть, будет ли результат операции ИЛИ истинным или ложным.
Java-код: перейти к редактору
public class ShortCircuitOpDemo {
public static void main(String[] args) {
float number1 = 120.345f;
float number2 = 345.21f;
float number3 = 234.21f;
if(number1 < number2 && number1< number3){
System.out.println("Smallest Number is number1");
}
if(number3 >number2 || number3 > number1){
System.out.println("number3 is not smallest");
}
}
}
Выход:
Тернарный оператор (или? Оператор или условный оператор)
Условный оператор является троичным оператором (он имеет три операнда) и используется для вычисления логических выражений, во многом как оператор if, за исключением того, что вместо выполнения блока кода, если тест равен true, условный оператор назначит значение переменной , Условный оператор начинается с логической операции, за которой следуют два возможных значения переменной слева от оператора присваивания (=). Первое значение (слева от двоеточия) присваивается, если условный (логический) тест равен true, а второе значение присваивается, если условный тест равен false. В приведенном ниже примере, если переменная a меньше b, тогда значение переменной x будет равно 50, иначе x = 60.
В приведенном ниже примере мы определяем статус на основе пользовательского ввода, если он пройден или не выполнен.
Java-код: перейти к редактору
import java.util.Scanner;
public class TernaryOpDemo {
public static void main(String[] args) {
//Checking if marks greater than 35 or not
String status;
int marks;
Scanner inputDevice = new Scanner(System.in);
System.out.print("Please enter your Marks (between 0 to 100) >> ");
marks = inputDevice.nextInt();
status= marks>=35 ?"You are Passed":"You are failed";
System.out.println("Status=" + status);
}
}
Выходы на основе пользовательского ввода:
Резюме
- Java предоставляет шесть условных операторов == (равенство),> (больше чем), <(меньше чем),> = (больше или равно), <= (меньше или равно),! = (Не равно)
- Реляционные операторы чаще всего используются для управления потоком программы.
- Логические операторы короткого замыкания - && и ||
- Тернарный оператор - это оператор, который похож на блок if else, но который используется для присвоения значения на основе условия.
Редактор кода Java:
Предыдущий: Арифметический оператор
Далее: Логический оператор
Новый контент: Composer: менеджер зависимостей для PHP , R программирования