a <- 10
b <- 5
if(a > b) {
print("A > B")
} else if (b > a){
print("B > A")
} else {
print("A equals B")
}
[1] "A > B"
if-else
Якщо є потреба перевірити у коді програми виконання якоїсь умови та за її результатами перейти до одного із блоків виконання зазвичай використовують оператор if-else
. Загальний вигляд формату використання оператора if-else
:
Вираз умова
повинен повертати результат у вигляді елемента логічного типу. Тобто, умова
може бути або true
, або false
.
Якщо умова
рівна true
, то виконається інструкція (або код) записана у дужках після if
. Якщо ж умова
рівна false
, то виконається інструкція записана у дужках після else
.
Символ #
перед кодом означає коментар
, тобто код, який не бачитиме інтепретатор мови програмування.
Якщо після if
або else
тільки одна інструкція (можна ототожнити з один рядком коду), то «фігурні» дужки {}
не є обов’язковими.
Конструкції if-else
можуть вкладеними одна в одну без обмежень по глибині. Проте дуже глибокої вкладеності варто уникати, адже це ускладнює читання та розуміння коду програми.
if
є обов’язковим і повинно існувати у всіх подібних конструкціях, у той же час else
– необов’язковий.
Також конструкція if-else
може мати структуру дерева із багатьма розгалуженнями. Така структура зазвичай записується як if-else-if
:
Вирази обчислюються зверху-вниз. Якщо один із виразів (умова
) отримає істинний результат (true
), то програмний код, пов’язаний із цією гілкою розгалуження виконається, а всі інші гілки будуть пропущені. Якщо ж не виконається жодна з умов, то буде запущено код всередині останньої інструкції else
(у цьому випадку else
теж не обов’язковий).
Розгялнемо приклади використання конструкції if-else
. Код нижче дозволяє перевірити, яке з двох цілих чисел є більшим:
Тернарний оператор – це спосіб запису умовного виразу в один рядок. Він використовується, коли потрібно присвоїти значення змінній в залежності від умови. Синтаксис тернарного оператора у R
відрізняється від інших мов програмування (класично це умова ? вираз_якщо_true : вираз_якщо_false
).
Оператор розгалуження if-else
у R
може повертати та записувати значення у змінну:
Проте сильною стороною R
є саме робота з векторами. Тому, якщо потрібно виконати умовну перевірку для кожного елемента вектора, то краще використати функцію ifelse()
. Синтаксис виклику:
де condition
– вектор умов, a
– вектор значень, які будуть повернуті, якщо умова condition
істинна, b
– вектор значень, які будуть повернуті, якщо умова condition
не істинна.
Розглянемо приклад. Потрібно створити вектор, який містить значення 1
для значень >= 0
та 0
для значень < 0
на основі наявного вектора x
:
Також оператор ifelse
можна використовувати і для заміни значень вектора. Наприклад, потрібно замінити всі значення Yes/No
на 1/0
:
Напишіть програму, що виводить консоль інформацію про те число парне чи ні. Значення \(0\) потрібно потрібно також перевірити і вивести у разі його введення "ZERO"
.
Розв’язання
Результат виконання коду: