Примеры использования if-else в JavaScript

В данном уроке мы с вами разберем некоторые примеры использования конструкции if-else.

Четверть часа

Пусть у нас есть переменная min, в которой хранится количество минут от 1 до 60:

let min = 10;

Давайте определим, в какую четверть часа попадает указанное количество минут:

let min = 10; if (min >= 0 && min <= 14) { console.log('1 четверть'); } if (min >= 15 && min <= 29) { console.log('2 четверть'); } if (min >= 30 && min <= 44) { console.log('3 четверть'); } if (min >= 45 && min <= 59) { console.log('4 четверть'); }

Решите аналогичную задачу, только определите в какую треть часа попадает указанное количество минут.

Длина строк и массивов

Пусть у нас есть переменная str, в которой хранится некоторая произвольная строка:

let str = '12345';

Давайте напишем условие, которое выведет сообщение на экран, если длина строки равна или больше трех символов:

let str = '12345'; if (str.length >= 3) { console.log('!'); }

В переменной arr содержится некоторый массив с числами. Напишите условие, которое проверит, что в массиве 3 элемента. Если это так, выведите на экран сумму элементов массива.

Проверка символа строки

Пусть дана некоторая строка, состоящая из цифр:

let str = '12345';

Давайте проверим, равен ли первый символ этой строки числу 1:

let str = '12345'; if (str[0] == 1) { console.log('!'); }

Проверим теперь последний символ на равенство числу 5:

let str = '12345'; let last = str[str.length - 1]; if (last == 5) { console.log('!'); }

Проверка символа числа

Пусть теперь у нас дано число:

let num = 12345;

Попытка обратиться к первому символу числа приведет к неожиданному поведению:

let num = 12345; if (num[0] == 1) { console.log('верно'); } else { console.log('неверно'); // выведет 'неверно' }

Как вы уже должны знать, проблема в том, что можно обращаться к символам строки, но нельзя - к цифрам числа:

let num = 12345; console.log(num[0]); // выведет undefined

Для решения проблемы преобразуем наше число в строку:

let num = 12345; let str = String(num); if (str[0] == 1) { console.log('верно'); // выведет 'верно' } else { console.log('неверно'); }

Не обязательно вводить новую переменную, можно применить [0] непосредственно к результату функции String:

let num = 12345; if (String(num)[0] == 1) { console.log('верно'); // выведет 'верно' } else { console.log('неверно'); }

Пусть теперь мы хотим проверить первую цифру на то, что она равна 1, либо 2. Напишем соответствующий код:

let num = 12345; if (String(num)[0] == 1 || String(num)[0] == 2) { console.log('верно'); } else { console.log('неверно'); }

В данном случае получается, что конструкция String(num)[0] повторится два раза. Это, во-первых, длинно, а во-вторых, не оптимально, так как мы два раза преобразуем число в строку - второй раз получается лишний, а ресурсы программы на это тратятся.

Исправим проблему:

let num = 12345; let first = String(num)[0]; if (first == 1 || first == 2) { console.log('верно'); } else { console.log('неверно'); }

Дано целое число. Напишите условие, которое проверит, равна ли последняя цифра этого числа нулю.

Пусть в переменной num хранится число. Определите, четное число или нет. Число будет четным, если последний символ равен 0, 2, 4, 6 или 8, и нечетным в противном случае.

Остаток от деления

Пусть у нас есть две переменные с числами:

let a = 10; let b = 3;

Давайте найдем остаток от деления одной переменной на другую:

let a = 10; let b = 3; console.log(a % b); // выведет 1

Пусть теперь в переменных хранятся такие значения, что одна переменная делится на вторую нацело:

let a = 10; let b = 5; console.log(a % b); // выведет 0

Давайте напишем скрипт, который будет проверять, делится ли нацело одно число на второе:

let a = 10; let b = 3; if (a % b == 0) { console.log('делится нацело'); } else { console.log('делится с остатком'); }

Пусть теперь требуется, если число делится с остатком, вывести этот остаток на экран:

let a = 10; let b = 3; if (a % b == 0) { console.log('делится нацело'); } else { console.log('делится с остатком ' + a % b); }

В приведенном выше коде получается, что остаток вычисляется в двух местах, а это не оптимально. Поправим проблему:

let a = 10; let b = 3; let rest = a % b; if (rest == 0) { console.log('делится нацело'); } else { console.log('делится с остатком ' + rest); }

Как известно, четные числа делятся на 2 без остатка, а нечетные - с остатком. Пусть у вас дано число. С помощью оператора % и конструкции if проверьте четное это число или нет.

Дано число. Проверьте, что оно делится на 3.