- Условные конструкции — Основы Java
- Конструкция if
- Конструкция if-else
- Конструкция else if
- Тернарный оператор
- Остались вопросы? Задайте их в разделе «Обсуждение»
- Открыть доступ
- Java if. else Statement
- 1. Java if (if-then) Statement
- Working of if Statement
- Example 1: Java if Statement
- Example 2: Java if with String
- 2. Java if. else (if-then-else) Statement
- How the if. else statement works?
- Example 3: Java if. else Statement
- 3. Java if. else. if Statement
- How the if. else. if ladder works?
- Example 4: Java if. else. if Statement
- 4. Java Nested if..else Statement
- Example 5: Nested if. else Statement
- Table of Contents
- Compare String With the Java if Statement
- Compare String With the Java if Statement Using the == Operator
- Compare String With the Java if Statement Using the equal() Function
- Compare String With the Java if Statement Using the compareTo() Function
- Related Article — Java String
Условные конструкции — Основы Java
Условные конструкции позволяют выполнять разный код, основываясь на логических проверках. Посмотрим на таком типичном примере:
- Человек хочет оплатить покупку с карты
- Если на счету есть деньги, то нужная сумма спишется автоматически
- Если денег нет, то операция будет отклонена
Конструкция if
Для примера напишем метод, который определяет тип переданного предложения. Для начала он будет отличать обычные предложения от вопросительных:
public static String getTypeOfSentence(String sentence) if (sentence.endsWith("?")) return "question"; > return "general"; > App.getTypeOfSentence("Hodor"); // "general" App.getTypeOfSentence("Hodor?"); // "question"
if — конструкция языка, управляющая порядком инструкций. В скобках ей передается логическое выражение, а затем описывается блок кода в фигурных скобках. Этот блок кода будет выполнен, только если условие выполняется.
Если условие не выполняется, то блок кода в фигурных скобках пропускается, и метод продолжает свое выполнение дальше. В нашем случае следующая строчка кода — return «general»; — заставит метод вернуть строку и завершиться.
Конструкция if-else
Условная конструкция if имеет несколько разновидностей. Одна разновидность включает в себя блок, который выполняется, если условие ложно:
if (x > 5) // Если условие true > else // Если условие false >
Такая структура может понадобиться при начальной инициализации значения. В примере ниже проверяется наличие email . Если он отсутствует, то устанавливаем значение по умолчанию, если его передали, то выполняем нормализацию:
// Здесь приходит email if (email.equals("")) // Если email пустой, то ставим дефолт email = "support@hexlet.io"; > else // Иначе выполняем нормализацию email = email.trim().toLowerCase(); > // Здесь используем эту почту
Если ветка if содержит return , то else становится не нужен — его можно просто опустить:
if (/* условие */) return /* какое-то значение */; > // Продолжаем что-то делать, потому что else не нужен
Конструкция else if
В самой полной версии конструкция if содержит не только ветку else , но и другие условные проверки с помощью else if . Такой вариант используется при большом количестве проверок, которые взаимоисключают друг друга:
if (/* что-то */) > else if (/* другая проверка */) > else if (/* другая проверка */) > else >
Здесь стоит обратить внимание на два момента:
Напишем для примера расширенный метод определяющий тип предложения. Он распознает три вида предложений:
App.getTypeOfSentence("Who?"); // "Sentence is question" App.getTypeOfSentence("No"); // "Sentence is general" App.getTypeOfSentence("No!"); // "Sentence is exclamation" public static String getTypeOfSentence(String sentence) var sentenceType = ""; if (sentence.endsWith("?")) sentenceType = "question"; > else if (sentence.endsWith("!")) sentenceType = "exclamation"; > else sentenceType = "general"; > return "Sentence is " + sentenceType; >
Теперь все условия выстроены в единую конструкцию. Оператор else if — это «если не выполнено предыдущее условие, но выполнено текущее». Получается такая схема:
- Если последний символ ? , то «question»
- Иначе, если последний символ ! , то «exclamation»
- Иначе «general»
В итоге выполнится только один из блоков кода, относящихся ко всей конструкции if .
Тернарный оператор
Посмотрите на определение метода, который возвращает модуль переданного числа:
// Если больше нуля, то выдаем само число. Если меньше, то убираем знак public static int abs(int number) if (number >= 0) return number; > return -number; > App.abs(10); // 10 App.abs(-10); // 10
В Java существует конструкция, которая по своему действию аналогична конструкции if-else, но при этом является выражением. Она называется тернарный оператор.
Тернарный оператор — единственный в своем роде оператор, требующий три операнда. Он помогает писать меньше кода для простых условных выражений. Наш пример выше с тернарным оператором превращается в три строки кода:
public static int abs(int number) return number >= 0 ? number : -number; >
Общий шаблон выглядит так:
predicate> ? expression on true> : expression on false>
То есть сначала мы записываем логическое выражение, а дальше два разных варианта поведения:
- Если условие истинно, выполняет вариант до двоеточия
- Если условие ложно, выполняет вариант после двоеточия
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Об обучении на Хекслете
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
Java if. else Statement
In programming, we use the if..else statement to run a block of code among more than one alternatives.
For example, assigning grades (A, B, C) based on the percentage obtained by a student.
- if the percentage is above 90, assign grade A
- if the percentage is above 75, assign grade B
- if the percentage is above 65, assign grade C
1. Java if (if-then) Statement
The syntax of an if-then statement is:
Here, condition is a boolean expression such as age >= 18 .
- if condition evaluates to true , statements are executed
- if condition evaluates to false , statements are skipped
Working of if Statement
Example 1: Java if Statement
class IfStatement < public static void main(String[] args) < int number = 10; // checks if number is less than 0 if (number < 0) < System.out.println("The number is negative."); >System.out.println("Statement outside if block"); > >
Statement outside if block
Note: If you want to learn more about about test conditions, visit Java Relational Operators and Java Logical Operators.
We can also use Java Strings as the test condition.
Example 2: Java if with String
Best Programming Language
In the above example, we are comparing two strings in the if block.
2. Java if. else (if-then-else) Statement
The if statement executes a certain section of code if the test expression is evaluated to true . However, if the test expression is evaluated to false , it does nothing.
In this case, we can use an optional else block. Statements inside the body of else block are executed if the test expression is evaluated to false . This is known as the if-. else statement in Java.
The syntax of the if. else statement is:
Here, the program will do one task (codes inside if block) if the condition is true and another task (codes inside else block) if the condition is false .
How the if. else statement works?
Example 3: Java if. else Statement
class Main < public static void main(String[] args) < int number = 10; // checks if number is greater than 0 if (number >0) < System.out.println("The number is positive."); >// execute this block // if number is not greater than 0 else < System.out.println("The number is not positive."); >System.out.println("Statement outside if. else block"); > >
The number is positive. Statement outside if. else block
In the above example, we have a variable named number . Here, the test expression number > 0 checks if number is greater than 0.
Since the value of the number is 10 , the test expression evaluates to true . Hence code inside the body of if is executed.
Now, change the value of the number to a negative integer. Let’s say -5 .
If we run the program with the new value of number , the output will be:
The number is not positive. Statement outside if. else block
Here, the value of number is -5 . So the test expression evaluates to false . Hence code inside the body of else is executed.
3. Java if. else. if Statement
In Java, we have an if. else. if ladder, that can be used to execute one block of code among multiple other blocks.
if (condition1) < // codes >else if(condition2) < // codes >else if (condition3) < // codes >. . else < // codes >
Here, if statements are executed from the top towards the bottom. When the test condition is true , codes inside the body of that if block is executed. And, program control jumps outside the if. else. if ladder.
If all test expressions are false , codes inside the body of else are executed.
How the if. else. if ladder works?
Example 4: Java if. else. if Statement
class Main < public static void main(String[] args) < int number = 0; // checks if number is greater than 0 if (number >0) < System.out.println("The number is positive."); >// checks if number is less than 0 else if (number < 0) < System.out.println("The number is negative."); >// if both condition is false else < System.out.println("The number is 0."); >> >
In the above example, we are checking whether number is positive, negative, or zero. Here, we have two condition expressions:
Here, the value of number is 0 . So both the conditions evaluate to false . Hence the statement inside the body of else is executed.
Note: Java provides a special operator called ternary operator, which is a kind of shorthand notation of if. else. if statement. To learn about the ternary operator, visit Java Ternary Operator.
4. Java Nested if..else Statement
In Java, it is also possible to use if..else statements inside an if. else statement. It’s called the nested if. else statement.
Here’s a program to find the largest of 3 numbers using the nested if. else statement.
Example 5: Nested if. else Statement
class Main < public static void main(String[] args) < // declaring double type variables Double n1 = -1.0, n2 = 4.5, n3 = -5.3, largest; // checks if n1 is greater than or equal to n2 if (n1 >= n2) < // if. else statement inside the if block // checks if n1 is greater than or equal to n3 if (n1 >= n3) < largest = n1; >else < largest = n3; >> else < // if..else statement inside else block // checks if n2 is greater than or equal to n3 if (n2 >= n3) < largest = n2; >else < largest = n3; >> System.out.println("Largest Number: " + largest); > >
In the above programs, we have assigned the value of variables ourselves to make this easier.
However, in real-world applications, these values may come from user input data, log files, form submission, etc.
Table of Contents
Compare String With the Java if Statement
- Compare String With the Java if Statement Using the == Operator
- Compare String With the Java if Statement Using the equal() Function
- Compare String With the Java if Statement Using the compareTo() Function
In this guide, we are going to talk about if statement string comparison in Java. There are generally three ways to compare two strings. You need to understand the basics of these operations and find out what you are comparing (content, reference, or string difference). Let’s take a deeper look into this.
Compare String With the Java if Statement Using the == Operator
When we compare two strings through the if statement using the == operator, we compare the reference number of those strings, but you’ll notice that it’ll work the same as comparing the content. If there are two strings with the same content, it’ll show them as equal. Why? Because the compiler of Java is mature enough to store the two strings with the same content in the same memory.
Compare String With the Java if Statement Using the equal() Function
Through the equal() function, we can compare the content of the two strings. It will see if the content is similar. It’s case sensitive, but you can also ignore the case sensitivity by using the equalsIgnoreCase() function instead.
Compare String With the Java if Statement Using the compareTo() Function
In this function, we get the difference between two strings. We compare them lexicographically based on each character’s Unicode value. You will get a 0 value if both the strings are equal, and you will get less than the 0 value if the string is less than the other string and vice versa.
Take a look at the following self-explanatory code.
public class Main public static void main(String[] args) String str1 = "jeff"; String str2 = "jeff"; String str3 = new String("jeff"); // to declare String str10 = new String("jeff"); System.out.println("-----------------Using == Operator ----------------"); // using == opreater use for Refrence Comapring instead of content comparison. if (str1 == str2) // equal and if Conditon True because both have same Refrence Memory address. System.out.println("Str1 And Str2 Equal"); > if (str1 == str3) // Not Equal If Condition False Because == opreater compares objects refrence. System.out.println("Str1 and Str3 are equals"); > if (str10 == str3) // Not Equal If Condition False Because == opreater compares objects refrence. System.out.println("Str10 and Str3 are equals"); > System.out.println("-----------------Using .equal Method----------------"); // Using .equals Method. for String Content Comparison. if (str1.equals(str2)) // equal and if Conditon True because both have same string System.out.println("Str1 And Str2 Equal"); > if (str1.equals(str3)) // Equal If Condition true String have same Content. System.out.println("Str1 and Str3 are equals"); > // compare two strings diffrence System.out.println("-----------------Using Compare Method----------------"); // first string.toCompare(String2) System.out.println(str1.compareTo(str2)); > >
Output: -----------------Using == Operator ---------------- Str1 And Str2 Equal -----------------Using .equal Method---------------- Str1 And Str2 Equal Str1 and Str3 are equals -----------------Using Compare Method---------------- 0
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.