Конструкция 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
if (month==12) MONTH = "December";

System.out.println(MONTH);

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

Фрагмент кода, решающий данную задачу

int month;
int n_days;

// ввод month
// ...

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);


Связанные темы