JavaScript · Синтаксис · Початковий рівень

Умовні оператори

15 завдань

Практичні вправи з умовними операторами JavaScript: порівняння чисел, перевірка діапазонів, робота з строками, паролями, відсотками та базовою логікою if, else if, else.

Як JavaScript приймає рішення

#
Умовні оператори в JavaScript працюють так само, як і в більшості мов: дивимося на значення, обираємо шлях. ```javascript if (умова) { // виконується, коли умова true } else if (іншаУмова) { // виконується, коли перша була false, але ця — true } else { // виконується, якщо нічого вище не співпало } ``` На відміну від Python, JavaScript використовує фігурні дужки для позначення блоків і круглі дужки навколо умови — обидва обов'язкові. Відступ — це угода, а не синтаксис. JavaScript перевіряє умови зверху вниз і зупиняється на першій, що є true. Виконується лише одна гілка. Порядок має значення: ставте найспецифічніші перевірки першими. else if і else обидва необов'язкові. Звичайний if без else цілком коректний, коли потрібно діяти лише в одному конкретному випадку.

Порівняння значень і комбінування умов

#
Більшість умов — це порівняння. У JavaScript є два оператори рівності, і це одне з перших, що потрібно засвоїти правильно: ```javascript a === b // true, коли a і b рівні І одного типу a !== b // true, коли різняться за значенням або типом a > b a < b a >= b a <= b ``` Використовуйте === і !== майже завжди. Оператор нестрогої рівності == виконує приведення типів: 0 == false — true, "1" == 1 — true. Ці сюрпризи є поширеним джерелом помилок. Дотримуйтеся строгої рівності. Комбінування умов з логічними операторами: ```javascript if (age >= 13 && age <= 17) { console.log("Підліток"); } if (score < 0 || score > 100) { console.log("Бал поза діапазоном"); } if (!isAdmin) { console.log("Доступ заборонено"); } ``` && вимагає, щоб обидві сторони були true. || вимагає хоча б однієї. ! заперечує. JavaScript не підтримує ланцюгові порівняння як у Python (13 <= age <= 17). Завжди пишіть два порівняння явно через &&.

Поширені патерни з умовами

#
У цих завданнях функція отримує значення і приймає рішення на їх основі. Числа надходять вже як числа (на відміну від Python з input()), тому перетворення зазвичай не потрібне. ```javascript function checkSign(number) { if (number > 0) { return "Positive"; } else if (number < 0) { return "Negative"; } else { return "Zero"; } } ``` Перевірка ділення без остачі за допомогою оператора залишку: ```javascript function isEven(n) { if (n % 2 === 0) { return "Even"; } else { return "Odd"; } } ``` % повертає залишок від цілочисельного ділення. n % 2 === 0 — true для кожного парного числа. Та сама ідея масштабується: n % 3 === 0 перевіряє ділення на 3. Захист від ділення на нуль: ```javascript function divide(a, b) { if (b === 0) { return "Cannot divide by zero"; } return a / b; } ``` Завжди перевіряйте дільник перед діленням. У JavaScript ділення на нуль не кидає помилку — воно повертає Infinity або NaN. Це рідко те, що потрібно, тому перевірка необхідна.
01

Перевірка знака числа.

#

Напишіть програму, яка приймає число та виводить, додатне воно, від’ємне чи дорівнює нулю.

let number = 5;
Рішення
let number = 5;
if (number > 0) {
    console.log("Число додатне");
} else if (number < 0) {
    console.log("Число від’ємне");
} else {
    console.log("Число дорівнює нулю");
}

// або так можна: спочатку підготувати повідомлення, а потім один раз вивести його
let number = 5;
let result;

if (number > 0) {
    result = "Число додатне";
} else if (number < 0) {
    result = "Число від’ємне";
} else {
    result = "Число дорівнює нулю";
}

console.log(result);
02

Вікова категорія.

#

Програма приймає вік користувача та виводить: "Дитина" (до 12), "Підліток" (13–17), "Дорослий" (18 і старше).

let age = 16;
Рішення
let age = 16;
if (age <= 12) {
    console.log("Дитина");
} else if (age <= 17) {
    console.log("Підліток");
} else {
    console.log("Дорослий");
}

// другий варіант: межі можна записати явно
let age = 14;

if (age < 13) {
    console.log("Дитина");
} else if (age >= 13 && age <= 17) {
    console.log("Підліток");
} else {
    console.log("Дорослий");
}
03

Більше з двох чисел.

#

Користувач вводить два числа. Виведіть більше з них. Якщо вони рівні — виведіть повідомлення "Числа рівні".

let a = 10;
let b = 7;
Рішення
let a = 10;
let b = 7;
if (a > b) {
    console.log("Більше число:", a);
} else if (b > a) {
    console.log("Більше число:", b);
} else {
    console.log("Числа рівні");
}

// або так можна, через змінну result
let a = 10;
let b = 5;
let result;

if (a === b) {
    result = "Числа рівні";
} else if (a > b) {
    result = `Більше число: ${a}`;
} else {
    result = `Більше число: ${b}`;
}

console.log(result);
04

Температура: холодно, тепло, спекотно.

#

Програма приймає температуру та виводить: "Холодно" (менше 10), "Тепло" (10–24), "Спекотно" (25 і більше).

let temp = 20;
Рішення
let temp = 20;
if (temp < 10) {
    console.log("Холодно");
} else if (temp <= 24) {
    console.log("Тепло");
} else {
    console.log("Спекотно");
}
05

Перевірка парності числа.

#

Користувач вводить число. Перевірте, чи є воно парним.

let num = 5;
Рішення
let num = 5;
if (num % 2 === 0) {
    console.log("Число парне");
} else {
    console.log("Число непарне");
}

// або так можна: зберегти перевірку в окрему змінну
let num = 8;
let isEven = num % 2 === 0;

if (isEven) {
    console.log("Число парне");
} else {
    console.log("Число непарне");
}
06

Перевірка довжини пароля.

#

Користувач вводить пароль. Якщо довжина пароля менша за 6 символів — виведіть "Пароль занадто короткий", інакше — "Пароль прийнято".

let password = "javascript";
Рішення
let password = "javascript";
if (password.length < 6) {
    console.log("Пароль занадто короткий");
} else {
    console.log("Пароль прийнято");
}
07

Оцінка за шкалою A-F.

#

Користувач вводить оцінку від 0 до 100. Виведіть: A (90–100), B (80–89), C (70–79), D (60–69), F (менше 60).

let score = 85;
Рішення
let score = 85;
if (score >= 90) {
    console.log("A");
} else if (score >= 80) {
    console.log("B");
} else if (score >= 70) {
    console.log("C");
} else if (score >= 60) {
    console.log("D");
} else {
    console.log("F");
}

// або так можна: йти від менших меж до більших
let score = 85;

if (score < 60) {
    console.log("F");
} else if (score < 70) {
    console.log("D");
} else if (score < 80) {
    console.log("C");
} else if (score < 90) {
    console.log("B");
} else {
    console.log("A");
}
08

Кратність двох чисел.

#

Користувач вводить два числа. Перевірте, чи кратне перше число другому.

let a = 10;
let b = 7;
Рішення
let a = 10;
let b = 7;
if (b === 0) {
    console.log("На нуль ділити не можна");
} else if (a % b === 0) {
    console.log("Перше число кратне другому");
} else {
    console.log("Перше число не кратне другому");
}
09

Округлення в діапазоні 0-100.

#

Користувач вводить число. Якщо воно більше 100 або менше 0 — виведіть "Тільки від 0 до 100", інакше округліть його до 2 знаків після крапки.

let num = 5;
Рішення
let num = 5;
if ((num < 0) || (num > 100)) {
    console.log("Тільки від 0 до 100");
} else {
    console.log(Number(num.toFixed(2)));
}

// або так можна: перевірку діапазону зберегти у змінну
let num = 42.678;
let inRange = num >= 0 && num <= 100;

if (inRange) {
    console.log(Number(num.toFixed(2)));
} else {
    console.log("Тільки від 0 до 100");
}
10

Довгий чи короткий рядок.

#

Користувач вводить рядок. Якщо довжина рядка більша за 10 символів — виведіть "Довгий рядок", інакше — "Короткий рядок".

let text = "JavaScript course";
Рішення
let text = "JavaScript course";
if (text.length > 10) {
    console.log("Довгий рядок");
} else {
    console.log("Короткий рядок");
}

// або так можна через змінну message
let text = "JavaScript";
let message;

if (text.length > 10) {
    message = "Довгий рядок";
} else {
    message = "Короткий рядок";
}

console.log(message);
11

Відсоток від числа.

#

Користувач вводить a і b. Порахуйте скільки відсотків a від b. Формула відсотків: (a/b)*100.

let a = 10;
let b = 7;
Рішення
let a = 10;
let b = 7;
if (b === 0) {
    console.log("На нуль ділити не можна! І частини від 0 немає.");
} else {
    let result = a / b * 100;
    result = Number(result.toFixed(2));
    console.log(String(result) + "%");
}
12

Округлення до потрібного знака.

#

Користувач вводить число, наприклад 5.2564494 і вводить до якого знака після коми (крапки) його округлити. Зробіть обчислення.

let num = 5;
let rounding = 2;
Рішення
let num = 5;
let rounding = 2;
if (rounding < 0) {
    console.log("Значення для кількості знаків після крапки не може бути меншим за 0.");
} else {
    console.log(Number(num.toFixed(rounding)));
}
13

Перетворення рядка в number.

#

Користувач вводить число рядком. Перевірте, чи є в рядку крапка, і в будь-якому випадку перетворіть значення в тип number за допомогою Number().

let num = "";
Рішення
let num = "5.25";

if (num.includes(".")) {
    console.log("У рядку є крапка");
} else {
    console.log("Крапки немає");
}

num = Number(num);

console.log(num);
14

Ділення без помилки нуля.

#

Потрібно поділити a на b. Якщо b дорівнює 0, то виведіть повідомлення, що на 0 ділити не можна. А якщо все ОК, то порахуйте!

let a = 10;
let b = 7;
Рішення
let a = 10;
let b = 7;
if (b === 0) {
    console.log("На нуль ділити не можна! Навіть якщо дуже хочеться!");
} else {
    console.log("Результат:", a / b);
}
15

Анкета імені та прізвища.

#

Користувач вводить Ім’я і потім окремо Прізвище. Давайте спробуємо зробити так, щоб якщо він введе все правильно, то ми об’єднаємо його Ім’я та Прізвище в один рядок (як один новий об’єкт) і виведемо в термінал. А якщо він помилиться і введе в поле "Ім’я" анкети одразу і своє Ім’я і Прізвище, то ми виведемо повідомлення, що: "Уважно заповнюйте анкету!! Це був останній бланк ахахах)))" і програма завершиться. Підказки: 1) Там буде пробіл у рядку, якщо він введе все одразу. 2) Спочатку перевіряйте помилковий варіант, так буде простіше і правильніше.

let name = "Alex";
let last_name = "Smith";
Рішення
let name = "Alex";
let lastName = "Smith";
if (name.includes(" ")) {
    console.log("Уважно заповнюйте анкету!! Це був останній бланк ахахах)))");
} else {
    let fullName = name + " " + lastName;
    console.log(fullName);
}