Урок JavaScript №14 - switch case и тернарный оператор | Курс FrontEnd 2021

preview_player
Показать описание
Две альтернативы if в js. Конструкция switch case для ограниченого набора условий и сокращенная запись if - тернарный оператор javascript. Когда и что использовать? Как обращаться с ветвлением кода в JavaScript.

Курс Frontend разработки 2021 - уроки по JavaScript с нуля до junior.

Домашнее задание:
1) При вводе, через prompt, названия времени года, выводится на экран перечисление месяцев этого года, иначе "-". Через switch/case
2) Вводим цифру, получаем строку с названием цифры. 2 = "Два"
3) При вводе имен "Маша", "Дима" и "Антон" выводим "7а", при вводе "Света" и "Леша", "7б", в остальных случаях если это строка, то "Нет данных", иначе "Ошибка ввода"
4) Просим пользователя ввести число, если ввод не корректен, то сохраняем по умолчанию 99.
5) Просим пользователя ввести число, если число положительное, то сохраняем его, если отрицательно, то сохраняем -1
6*) Решить все задания из предыдущего урока, не используя if. (Не то что бы это сложно, просто руку набить. Не обязательно, поэтому со звездочкой)
Рекомендации по теме
Комментарии
Автор

Пал Палыч, здравствуйте! Спасибо вам за очередной урок по JS. Всё было очень понятно вами рассказано.

Asver_
Автор

Со вторым заданием сначала затупил, но потом дошло, что надо перед prompt + поставить. Спасибо за уроки! 👍

web
Автор

Спасибо за урок! Про использование несколько case подряд не знал, спасибо👍

f-len
Автор

4)
let a = +prompt('введи число', '')
let b = Number(a)
switch (a) {
case (b):
console.log(b)
break
default:
console.log(99)
}
5)let a = +prompt('введи число', '')
let c = a < 0 ? -1 : a
console.log(c)

КсенияМалышева-ры
Автор

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

nairigasparyan
Автор

Вопрос по упражнению №3: Можно ли решить его switch, case`ом? Если можно - то как выполнить третье условие?

velikorossnationalist
Автор

Здравствуйте Павел. У меня возникла проблема при компановке SWITCH.
Хотелось бы уточнить детали. Является ли RETURN эквивалентом BREAK в плане окончания проверки или же после RETURN обязательно надо указывать BREAK ???
Через консоль это проверить не удалось. Заранее спасибо за обратную связь.

guliverdiamond
Автор

Добрый день. Таким образом выполнила 3 задание. Интересно ваше мнение.
let name = prompt('Введи имя!');
let typeOfName = typeof (name);
console.log(typeOfName);
switch (name) {
case 'Маша':
case 'Дима':
case 'Антон':
alert('7а')
break;
case 'Света':
case 'Лёша':
alert('7б')
break;
default:
switch (typeOfName) {
case 'string':
alert('Нет данных!')
break;
default:
alert('Ошибка ввода!')
}
}
Не могу понять смысла задания, насколько я знаю через prompt всегда получаем строковое значение, поэтому всегда имеем 'Нет данных!', если не будет введено ни одно из данных имен.
Спасибо.

Gdhdhdhdjh
Автор

1)

let seasons=prompt("Времена года");
switch(seasons) {
case "весна":
alert ("Март, Апрель, Май");
break;
case "лето":
alert ("Июнь, Июль, Август");
break;
case "осень":
alert ("Сентябрь, Октябрь, Ноябрь");
break;
case "зима":
alert ("Декабрь, Январь, Февраль");
default:
alert ("-");
}



2)

let num=prompt("Введите число");
switch(num) {
case "2":
console.log("Два");
break;
default:
console.log("-");
}



3)

let names=prompt("Введите имя");
switch(names) {
case "Маша":
case "Дима":
case "Антон":
alert("7a");
break;
case "Света":
case "Леша":
alert("7б");
break;
case "":
alert("Нет данных");
break;
default:
alert("Ошибка ввода");

}

velikorossnationalist
Автор

Вот значит в каком видео находится оператор вопросительный знак, он же тернарный оператор)

velikorossnationalist
Автор

5) Просим пользователя ввести число, если число положительное, то сохраняем его, если отрицательно, то сохраняем -1

С положительным то все понятно, а как задать в условии провернку на отрицательный знак не преречисляя цифры?

Alex-wgtb
Автор

Ребята, подскажите кто-нибудь как обозначить в коде строку? Для третей задачи, чтобы если пользователь вводит что-то кроме имен, выводилось "Нет данных".

ValeriaBuzilova
Автор

из прошлого урока ДЗ подскажи где ошибка, пишу число 5 в promt, это число закидывает в мою переменную num, и оно ровно ===5 но почему то пишет нет, где я накосячил?)
мне кажется ошибка где то в case ('===5'):
что то я не так написал здесь, потому что с другими заданиями проблем не было

let num = prompt('Ввeдите число');

switch(num) {
case ('===5'):
alert('Да');

break;
default:
alert('Нет')
}

mst
Автор

В четвертом задании не понял сути задания - "если ввод не корректен, то сохраняем по умолчанию 99." То есть если пользователь ввел не число или оставил пустую строку тогда вывести 99?)

valerasho
Автор

Если сюда нельзя то смело удаляй )
3 задание
Неправильное смотреть в комментах
const getName = prompt("Введи любое имя Маша Дима Антон, Света и Леша");
switch (getName) {
case `Маша Дима Антон`:
alert("7а");
break;
case `Света Леша`:
alert("7б");
break;
case '':
alert('Нет данных');
break;
default:
alert("Ошибка ввода");
}

4 задача, чет я долго ее мучал в комментариях нашел ответ.
1решение

const getNumber = prompt("Введи число");
if (+getNumber) {
alert('Ввел число');
} else {
alert('99');
}

2 решение
const getNumber = prompt("Введи число");
const out = (+getNumber) ? alert('Ввел число') : alert('99');


5 задача
const getNumber = +prompt("Введи число");
if (getNumber > 0) {
  alert(getNumber);
} else if (getNumber < 0) {
  alert('-1');
} else {
  alert('ноль тоже число');
}


любой пробел будет считаться ошибкой, учти это юный падаван)

serg-k