Оволодіння операторами управління в Java: Посібник з умовної логіки та керування потоком

Управляючі конструкції в Java змінюють потік виконання програми залежно від певних умов або для повторного виконання. Ці конструкції дозволяють виконувати код за умовами, створювати цикли та здійснювати ранні виходи з циклів чи функцій.

Ось огляд основних типів:

1. Умовні конструкції

  • if Конструкція: Виконує блок коду лише за умови, що певна умова є істинною.

1. Конструкція if

Виконує блок коду тільки якщо задана умова є істинною.

int age = 18;  
if (age >= 18) {  
 System.out.println("Ви маєте право голосувати.");  
}
  • if-else Конструкція: Додає альтернативний блок, який виконується, якщо умова є хибною.
int temperature = 25;  
if (temperature > 30) {  
 System.out.println("Сьогодні жаркий день.");  
} else {  
 System.out.println("Сьогодні прохолодний день.");  
}
  • else if Ланцюжок: З’єднує кілька умов, виконуючи блок першої істинної умови.
int score = 85;  
if (score >= 90) {  
 System.out.println("Оцінка: A");  
} else if (score >= 80) {  
 System.out.println("Оцінка: B");  
} else if (score >= 70) {  
 System.out.println("Оцінка: C");  
} else {  
 System.out.println("Оцінка: F");  
}
  • switch Конструкція: Вибирає та виконує код із кількох варіантів, залежно від значення виразу.
int day = 3;  
switch (day) {  
 case 1:  
 System.out.println("Понеділок");  
 break;  
 case 2:  
 System.out.println("Вівторок");  
 break;  
 case 3:  
 System.out.println("Середа");  
 break;  
 default:  
 System.out.println("Невірний день");  
 break;  
}

2. Цикли

  • for Цикл: Повторює блок коду певну кількість разів, використовуючи змінну-лічильник.
for (int i = 1; i <= 5; i++) {  
 System.out.println("Ітерація " + i);  
}

Вивід:

Ітерація 1  
Ітерація 2  
Ітерація 3  
Ітерація 4  
Ітерація 5
  • while Цикл: Повторює блок коду, поки задана умова є істинною.
int count = 1;  
while (count <= 5) {  
 System.out.println("Лічильник: " + count);  
 count++;  
}

do-while Цикл: Виконує блок коду хоча б один раз, а потім повторює його, поки умова є істинною.

int number = 1;  
do {  
 System.out.println("Число: " + number);  
 number++;  
} while (number <= 5);

Вивід:

Число: 1  
Число: 2  
Число: 3  
Число: 4  
Число: 5

4. Покращений цикл for (for-each цикл)

Використовується для перебору масивів чи колекцій.

int[] numbers = {10, 20, 30, 40, 50};  
for (int num : numbers) {  
 System.out.println("Число: " + num);  
}

Вивід:

Число: 10  
Число: 20  
Число: 30  
Число: 40  
Число: 50

3. Конструкції переходу

  • break: Виходить з циклу або конструкції switch, негайно завершаючи її виконання.
for (int i = 1; i <= 5; i++) {  
 if (i == 3) {  
 break; // Виходить з циклу, коли i дорівнює 3  
 }  
 System.out.println("i = " + i);  
}

Вивід:

i = 1  
i = 2
  • continue: Пропускає поточну ітерацію циклу та переходить до наступної.
for (int i = 1; i <= 5; i++) {  
 if (i == 3) {  
 continue; // Пропускає решту коду, коли i дорівнює 3  
 }  
 System.out.println("i = " + i);  
}

Вивід:

i = 1  
i = 2  
i = 4  
i = 5
  • return: Виходить з методу та, за необхідності, повертає значення до викликаючого коду.
public static int addNumbers(int a, int b) {  
 return a + b; // Повертає результат додавання  
}  
public static void main(String[] args) {  
 int result = addNumbers(5, 10);  
 System.out.println("Результат: " + result);  
}

Вивід:

Результат: 15

Мітки для конструкцій

  • Мітки для конструкцій використовуються з break або continue для виходу чи пропуску ітерацій у вкладених циклах. Мітка визначає конкретний цикл для контролю.
    ## break з міткою

Виходить з конкретного циклу у вкладеній структурі циклів.

outerLoop:  
for (int i = 1; i <= 3; i++) {  
 for (int j = 1; j <= 3; j++) {  
 if (j == 2) {  
 break outerLoop; // Виходить з зовнішнього циклу, коли j дорівнює 2  
 }  
 System.out.println("i = " + i + ", j = " + j);  
 }  
}

Вивід:

i = 1, j = 1

Пояснення: Коли j дорівнює 2, конструкція break з міткою outerLoop зупиняє обидва цикли.

2. continue з міткою

Пропускає поточну ітерацію конкретного циклу у вкладеній структурі та переходить до наступної ітерації.

outerLoop:  
for (int i = 1; i <= 3; i++) {  
 for (int j = 1; j <= 3; j++) {  
 if (j == 2) {  
 continue outerLoop; // Пропускає до наступної ітерації зовнішнього циклу  
 }  
 System.out.println("i = " + i + ", j = " + j);  
 }  
}

Вивід:

i = 1, j = 1  
i = 2, j = 1  
i = 3, j = 1

Пояснення: Коли j дорівнює 2, конструкція continue з міткою outerLoop пропускає решту ітерацій внутрішнього циклу та переходить до наступної ітерації зовнішнього циклу.

3. Багато вкладених циклів з міткою break

Більш складний приклад, де конструкція break з міткою використовується для виходу з глибоко вкладеного циклу.

outerLoop:  
for (int i = 1; i <= 3; i++) {  
 for (int j = 1; j <= 3; j++) {  
 for (int k = 1; k <= 3; k++) {  
 if (k == 2) {  
 break outerLoop; // Виходить з усіх циклів, коли k дорівнює 2  
 }  
 System.out.println("i = " + i + ", j = " + j + ", k = " + k);  
 }  
 }  
}

Вивід:

i = 1, j = 1, k = 1

Пояснення: Коли k дорівнює 2, конструкція break з міткою outerLoop виходить з усіх циклів негайно.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Підписуйтесь на нас в Instagram, щоб отримувати більше постів та порад з програмування.

https://www.instagram.com/programming_pulse/

Перекладено з: Mastering Control Statements in Java: A Guide to Conditional Logic and Flow Control

Leave a Reply

Your email address will not be published. Required fields are marked *