Java. Конструкція if-else-if

Конструкція if-else-if


Зміст



1. Який загальний вигляд має конструкція if – else – if?

Загальна форма оператора if-else-if має вигляд:

if (умова1)
    оператор1;
else
if (умова2)
    оператор2;
else
...
if (умоваN)
    операторN;
else
    оператор;

де

  • умова1, умова2, …, умоваN – операція умови, що містить операції відношення;
  • оператор, оператор1, оператор2, операторN – один або декілька операторів.

Конструкція if-else-if працює наступним чином. Якщо виконується умова1, то виконується оператор1. Якщо умова1 не виконується, то відбувається перехід до перевірки умови2. Далі так само, якщо виконується умова2, то виконується оператор2. В іншому випадку відбувається перехід до наступної умови. Якщо в процесі перевірки не виконається жодна умова, тоді виконується останній оператор.

Якщо після виконання умови потрібно виконати декілька операторів, то вони беруться в блок { }.

2. Який управляючий оператор можна замінити конструкцією if-else-if?

Конструкція виду if-else-if може замінювати оператор вибору switch.

Наприклад, фрагмент коду, що визначає вихідний день чи робочий, можна реалізувати з допомогою оператора switch та конструкції виду if-else-if.

Розв’язок з допомогою оператора switch:

int day;
boolean f_DayOff;

day = 7;
f_DayOff = false;

// реалізація з оператором switch
switch (day)
{
    case 1: f_DayOff = false; break;
    case 2: f_DayOff = false; break;
    case 3: f_DayOff = false; break;
    case 4: f_DayOff = false; break;
    case 5: f_DayOff = false; break;
    case 6: f_DayOff = true; break;
    case 7: f_DayOff = true; break;
}

Рішення задачі з використанням оператора if-else-if

int day;
boolean f_DayOff;

// ...
f_DayOff = false;

// конструкція if-else-if
if (day==1) f_DayOff = false;
else
if (day==2) f_DayOff = false;
else
if (day==3) f_DayOff = false;
else
if (day==4) f_DayOff = false;
else
if (day==5) f_DayOff = false;
else
if (day==6) f_DayOff = true;
else
if (day==7) f_DayOff = true;

3. Приклади використання конструкції if-else-if

Приклад 1. Розробити програму виведення назви місяця, якщо він заданий цілим числом від 1 до 12. У програмі використати оператор if-else-if.

Фрагмент коду, що розв’язує дану задачу:

int month; // номер місяця
String MONTH = ""; // назва місяця

// ввід month
// ...

if (month==1) MONTH = "January";
else
if (month==2) MONTH = "February";
else
if (month==3) MONTH = "March";
else
if (month==4) MONTH = "April";
else
if (month==5) MONTH = "May";
else
if (month==6) MONTH = "June";
else
if (month==7) MONTH = "July";
else
if (month==8) MONTH = "August";
else
if (month==9) MONTH = "September";
else
if (month==10) MONTH = "October";
else
if (month==11) MONTH = "November";
else
    MONTH = "December";


System.out.println(MONTH);

Приклад 2. Розробити програму визначення кількості днів у місяці, якщо він заданий номером від 1 до 12.

Фрагмент коду, що розв’язує дану задачу

int month;
int n_days;

// ввід month
// ...
n_days = 30;

if ((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10))
    n_days = 31;
else
if (month==2)
    n_days = 28;
else
    n_days = 30;

Приклад 3. Дано ціле число n (1 ≤ n ≤ 4) та дійсне число x. За даним значенням змінної n, яке є номером функції, визначити:

  • 1) cos x;
  • 2) tg x;
  • 3) sin x;
  • 4) ctg x.

Фрагмент коду, що розв’язує дану задачу:

int n;
double f,x;

// ввести x, n
// ...

if (n==1) f = Math.cos(x);
else
if (n==2) f = Math.tan(x);
else
if (n==3) f = Math.sin(x);
else
    f = Math.cos(x)/Math.sin(x);


Зв’язані теми