Как через switch делать арифметические сравнения?

Например, у меня на выходе:

const randomNum = Math.floor(Math.random() * 100);

  • дает случайное число от 0 до 100.

Мне нужно как-то донести до switch чтобы он перебирал числа, чтобы он выводил текст без цифр, а текстом что в массиве было. Код такой сейчс:

switch (randomNum) {
    case randomNum > 69:
        console.log('randomNum больше 69');
        break;
    case randomNum < 14:
        console.log('randomNum меньше 14');
        break;
default: console.log('randomNum меньше 69 и больше 14')
break;
} 

Но он почему-то неправильный, и всегда выводит default. Есть еще вариант создать другие массивы с диапазоном цифр внутри, но итог тот же

Вообще switch умеет сравнивать?


Ответы (1 шт):

Автор решения: Юрий Копоть

Вообще, case сравнивает на соответствие правда/ложь (при том строгое сравнение). Но есть нестандартное поведение, которым можно добиться сравнение больше/меньше. Просто поставить true в switch, switch - Второй способ

const randomNum = Math.floor(Math.random() * 100);
switch (true) {
  case randomNum > 69:
    console.log(`${randomNum} больше 69`);
    break;
  case randomNum < 14:
    console.log(`${randomNum} меньше 14`);
    break;
  default:
    console.log(`${randomNum} не больше 69 и не меньше 14`);
}

→ Ссылка