Skip to content

Commit 7bc26a8

Browse files
committed
[REC-5/st-compl] flow-control, 2-nd
Solving 5 tasks. Working with "if...else, switch...case, ternary ?, ||". Worth noting: - processing only the "next line" when working with "if...else" without {}. FS-dev: B-3 / JS basic
1 parent 170d016 commit 7bc26a8

File tree

2 files changed

+129
-0
lines changed

2 files changed

+129
-0
lines changed

full-stack-dev/3-js-basic/5-flow-control/recall/recall.js renamed to full-stack-dev/3-js-basic/5-flow-control/recall/1-first/recall.js

File renamed without changes.
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
'use strict';
2+
3+
// Задание 1:
4+
// Напиши программу, которая определяет тип скидки для пользователя в зависимости от суммы его заказа.
5+
// 1. Создай константу orderAmount (сумма заказа) и присвой ей значение 950.
6+
// 2. Создай переменную discountType (тип скидки).
7+
// 3. Используя конструкцию if...else, else...if (из 5.1):
8+
// - Если orderAmount больше или равно 1000, discountType = 'gold'.
9+
// - Если orderAmount больше или равно 500 (но меньше 1000), discountType = 'silver'.
10+
// - Во всех остальных случаях, discountType = 'bronze'.
11+
// 4. Выведи discountType в консоль.
12+
13+
const orderAmount = 950;
14+
let discountType;
15+
16+
if (orderAmount >= 1000) {
17+
discountType = 'gold';
18+
} else if (orderAmount >= 500) {
19+
discountType = 'silver';
20+
} else {
21+
discountType = 'bronze';
22+
}
23+
24+
console.log(discountType); // silver
25+
26+
// Задание 2:
27+
// У нас есть переменная userRole (роль пользователя) и userName.
28+
// let userRole = 'moderator';
29+
// let userName = 'Alex';
30+
// Нам нужно создать переменную accessLevel (уровень доступа).
31+
// Используя тернарный оператор (? :) (из файла 5.5), напиши однострочное выражение, которое:
32+
// - Если userRole равен 'admin', присваивает accessLevel значение 'Full Access'.
33+
// - Иначе (во всех остальных случаях), присваивает accessLevel значение 'Limited Access'.
34+
// После этого, используя шаблонную строку, выведи в консоль: "User: [userName], Level: [accessLevel]"
35+
36+
let userRole = 'moderator';
37+
let userName = 'Alex';
38+
39+
let accessLevel = userRole === 'admin' ? 'Full Access' : 'Limited Access';
40+
console.log(`User: ${userName}, Level: ${accessLevel}`); // User: Alex, Level: Limited Access
41+
42+
// Задание 3:
43+
// Давай напишем небольшой "переводчик" дней недели.
44+
// 1. Создай константу dayOfWeek (день недели) и присвой ей значение 'Вторник'.
45+
// 2. Создай переменную dayInEnglish.
46+
// 3. Используя конструкцию switch (из 5.4), проверь dayOfWeek.
47+
// 4. Создай case для 'Понедельник', 'Вторник', 'Среда'.
48+
// 5. В case 'Понедельник', dayInEnglish должен стать 'Monday'.
49+
// 6. В case 'Вторник', dayInEnglish должен стать 'Tuesday'.
50+
// 7. В case 'Среда', dayInEnglish должен стать 'Wednesday'.
51+
// 8. Добавь default, который будет присваивать dayInEnglish значение 'Unknown'.
52+
// 9. Не забудь break (или используй return, если поместишь switch в функцию, как в файле "Пример_оптимизации...").
53+
// 10. Выведи dayInEnglish в консоль.
54+
55+
const dayOfWeek = 'Вторник';
56+
let dayInEnglish;
57+
58+
switch (dayOfWeek) {
59+
case 'Понедельник':
60+
dayInEnglish = 'Monday';
61+
break;
62+
case 'Вторник':
63+
dayInEnglish = 'Tuesday';
64+
break;
65+
case 'Среда':
66+
dayInEnglish = 'Wednesday';
67+
break;
68+
default:
69+
dayInEnglish = 'Unknown';
70+
}
71+
72+
console.log(dayInEnglish); // Tuesday
73+
74+
// Задание 4:
75+
// У нас есть два объекта (хотя мы их ещё не проходили, представим, что это просто переменные).
76+
// let user = {
77+
// name: 'Alex'
78+
// }; // Объект с данными
79+
// let admin = null; // Пустая переменная
80+
// Нам нужно создать переменную activeUser (активный пользователь).
81+
// Используя оператор || (который мы проходили в 4.9, но он относится и к этой теме), напиши однострочное выражение, которое:
82+
// 1. Проверит user. Если user — truthy (а user у нас объект, помнишь, что это?), он должен попасть в activeUser.
83+
// 2. Если user вдруг falsy, он должен проверить admin.
84+
// 3. Если и admin falsy, то activeUser должен стать 'Guest'.
85+
// (Подсказка: user || admin || 'Guest')
86+
// После этого, используя шаблонную строку, выведи activeUser.name (имя пользователя).
87+
// (И снова предупреждение: что произойдёт, если activeUser станет 'Guest' (строкой), а мы попытаемся взять у него .name? Как это связано с порядком проверки в ||?)
88+
89+
let user = {
90+
name: 'Alex',
91+
}; // Объект с данными
92+
93+
let admin = null; // Пустая переменная
94+
let activeUser = user || admin || 'Guest';
95+
96+
console.log(`${activeUser.name}`); // Alex
97+
98+
// Задание 5:
99+
// Давай напишем скрипт, который рекомендует, что надеть, в зависимости от погоды.
100+
// let temperature = 15;
101+
// let weather = 'rain'; // 'rain', 'sunny' и т.д.
102+
// Нам нужно:
103+
// 1. Создать переменную recommendation (рекомендация).
104+
// 2. Используя хитрый switch (true) (из 5.4), который мы обсуждали, проверить несколько условий:
105+
// - case 1: Если temperature > 25 И weather === 'sunny', recommendation = 'Футболка и шорты'.
106+
// - case 2: Если temperature > 10 И weather === 'rain', recommendation = 'Куртка и зонт'.
107+
// - case 3: Если temperature <= 10, recommendation = 'Теплая куртка'.
108+
// - default: recommendation = 'Оденьтесь по погоде'.
109+
// Выведи recommendation в консоль.
110+
111+
let temperature = 15;
112+
let weather = 'rain'; // 'rain', 'sunny' и т.д.
113+
let recommendation;
114+
115+
switch (true) {
116+
case temperature > 25 && weather === 'sunny':
117+
recommendation = 'Футболка и шорты';
118+
break;
119+
case temperature > 10 && weather === 'rain':
120+
recommendation = 'Куртка и зонт';
121+
break;
122+
case temperature <= 10:
123+
recommendation = 'Теплая куртка';
124+
break;
125+
default:
126+
recommendation = 'Оденьтесь по погоде';
127+
}
128+
129+
console.log(recommendation); // Куртка и зонт

0 commit comments

Comments
 (0)