You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

351 lines
15 KiB

<div align="center">
<h1> 30 Days Of JavaScript</h1>
<a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/">
<img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social">
</a>
<a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh">
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/asabeneh?style=social">
</a>
<sub>Автор:
<a href="https://www.linkedin.com/in/asabeneh/" target="_blank">Asabeneh Yetayeh</a><br>
<small> Январь, 2020</small>
</sub>
</div>
[<< День 3](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/RU/03_Day/03_booleans_operators_date.md) | [День 5 >>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/RU/05_Day/05_day_arrays.md)
![Thirty Days Of JavaScript](../images/banners/day_1_4.png)
- [📔 День 4](#%f0%9f%93%94-%d0%94%d0%b5%d0%bd%d1%8c-4)
- [Условные операторы](#%d0%a3%d1%81%d0%bb%d0%be%d0%b2%d0%bd%d1%8b%d0%b5-%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%82%d0%be%d1%80%d1%8b)
- [if](#if)
- [if else](#if-else)
- [if else if else](#if-else-if-else)
- [Switch](#switch)
- [Тернарный оператор](#%d0%a2%d0%b5%d1%80%d0%bd%d0%b0%d1%80%d0%bd%d1%8b%d0%b9-%d0%be%d0%bf%d0%b5%d1%80%d0%b0%d1%82%d0%be%d1%80)
- [💻 Упражнения](#%f0%9f%92%bb-%d0%a3%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f)
- [Упражнения: уровень 1](#%d0%a3%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f-%d1%83%d1%80%d0%be%d0%b2%d0%b5%d0%bd%d1%8c-1)
- [Упражнения: уровень 2](#%d0%a3%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f-%d1%83%d1%80%d0%be%d0%b2%d0%b5%d0%bd%d1%8c-2)
- [Упражнения: уровень 3](#%d0%a3%d0%bf%d1%80%d0%b0%d0%b6%d0%bd%d0%b5%d0%bd%d0%b8%d1%8f-%d1%83%d1%80%d0%be%d0%b2%d0%b5%d0%bd%d1%8c-3)
# 📔 День 4
## Условные операторы
Условные операторы используются для принятия решения на основе различных условий.
По умолчанию операторы в скрипте JavaScript выполняются последовательно сверху вниз. Если логика обработки требует этого, последовательный поток выполнения может быть изменен двумя способами:
- Условное выполнение: блок из одного или нескольких операторов будет выполнен, если определенное выражение истинно
- Повторное выполнение: блок из одного или нескольких операторов будет выполняться повторно, если определенное выражение истинно. В этом разделе мы рассмотрим операторы `if`, `else`, `else if`. Здесь будут полезны сравнение и логический оператор, который мы изучили в предыдущих разделах.
Условия могут быть реализованы следующими способами:
- if
- if else
- if else if else
- switch
- ternary operator
### if
В JavaScript и других языках программирования ключевое слово `if` используется, чтобы проверить, выполняется ли условие и выполнить код блока. Чтобы создать условие `if`, нам нужно ключевое слово `if`, условие внутри скобки и блок кода внутри фигурной скобки ({}).
```js
// синтаксис
if (condition) {
//эта часть кода работает для true состояния
}
```
**Пример:**
```js
let num = 3;
if (num > 0) {
console.log(`${num} это положительное число`);
}
// 3 это положительное число
```
```js
let isRaining = true;
if (isRaining) {
console.log("Remember to take your rain coat.");
}
```
Как видно из вышеприведенного условия, 3 больше 0 и является положительным числом. Условие было выполнено, и код блока был выполнен. Однако, если условие ложно, мы не видим результат. То же самое касается второго условия, если isRaining равен `false`, блок `if` не будет выполнен, и мы не увидим вывод. Чтобы увидеть результат ложного условия, у нас должен быть еще один блок, который будет `else`.
### if else
Если условие истинно, первый блок будет выполнен, если нет, будет выполнено условие else.
```js
// синтаксис
if (condition) {
// эта часть кода работает для истинного состояния
} else {
// эта часть кода выполняется для ложного условия
}
```
```js
let num = 3;
if (num > 0) {
console.log(`${num} это положительное число`);
} else {
console.log(`${num} отрицательное число`);
}
// 3 это положительное число
num = -3;
if (num > 0) {
console.log(`${num} это положительное число`);
} else {
console.log(`${num} это отрицательное число`);
}
// -3 это отрицательное число
```
```js
let isRaining = true;
if (isRaining) {
console.log("Тебе нужен плащ от дождя..");
} else {
console.log("Не нужно пальто от дождя.");
}
// Тебе нужен плащ от дождя.
isRaining = false;
if (isRaining) {
console.log("Тебе нужен плащ от дождя..");
} else {
console.log("Не нужно пальто от дождя.");
}
// Не нужно пальто от дождя.
```
Вышеуказанное условие ложно, поэтому был выполнен блок `else`. Как насчет, если наше условие больше двух, мы будем использовать `else if` условия.
### if else if else
В нашей повседневной жизни мы принимаем решения ежедневно. Мы принимаем решение не проверяя одно или два условия, а принимаем решения на основе нескольких условий. Как и в нашей повседневной жизни, программирование также полно условий. Мы используем `else if`, когда у нас есть несколько условий.
```js
// синтаксис
if (condition) {
// код
} else if (condition) {
// код
} else {
// код
}
```
**Пример:**
```js
let a = 0;
if (a > 0) {
console.log(`${a} это положительное число`);
} else if (a < 0) {
console.log(`${a} это отрицательное число`);
} else if (a == 0) {
console.log(`${a} это 0`);
} else {
console.log(`${a} это не число`);
}
```
```js
// if else if else
let weather = "солнечно";
if (weather === "дождливо") {
console.log("Вам нужен плащ от дождя.");
} else if (weather === "облачно") {
console.log("Может быть холодно, тебе нужен пиджак.");
} else if (weather === "солнечно") {
console.log("Выйди свободным.");
} else {
console.log("Не нужно пальто от дождя.");
}
```
### Switch
Переключатель является альтернативой для `if else if else else`.
Оператор `switch` начинается с ключевого слова `switch`, за которым следуют скобки и блок кода. Внутри блока кода у нас будут разные случаи (case). Блок case выполняется, если значение в скобках оператора `switch` совпадает со значением case. Операртор `break` служит для прерывания выполнения, чтобы выполнение кода не прекратилось после выполнения условия. Блок `default` выполняется, если все случаи не удовлетворяют условию.
```js
switch (caseValue) {
case 1:
// код
break;
case 2:
// код
break;
case 3:
// код
default:
// код
}
```
```js
let weather = "облачно";
switch (weather) {
case "дождливо":
console.log("Вам нужен плащ от дождя.");
break;
case "облачно":
console.log("Может быть холодно, тебе нужен пиджак.");
break;
case "солнечно":
console.log("Выйди свободно.");
break;
default:
console.log("Не нужно пальто от дождя.");
}
// Switch больше примеров
let dayUserInput = prompt("Какой сегодня день ?");
let day = dayUserInput.toLowerCase();
switch (day) {
case "понедельник":
console.log("Сегодня понедельник");
break;
case "вторник":
console.log("Сегодня вторник");
break;
case "среда":
console.log("Сегодня среда");
break;
case "четверг":
console.log("Сегодня четверг");
break;
case "пятница":
console.log("Сегодня пятница");
break;
case "суббота":
console.log("Сегодня суббота");
break;
case "воскресенье":
console.log("Сегодня воскресенье");
break;
default:
console.log("Это не день недели.");
}
```
### Тернарный оператор
Другой способ написания условных выражений - использование тернарных операторов. Мы уже рассматривали этот способ в других разделах, но нам следует также упомянуть о нем здесь.
```js
let isRaining = true;
isRaining
? console.log("You need a rain coat.")
: console.log("No need for a rain coat.");
```
🌕 Вы необыкновенный и у вас есть замечательный потенциал. Вы только что выполнили четвертый день испытаний и прошли четыре шага на пути к успеху. Теперь сделайте несколько упражнений для вашего мозга и ваших мышц.
## 💻 Упражнения
### Упражнения: уровень 1
1. Получить пользовательский ввод с помощью `prompt("Введите свой возраст:")`. Если пользователю 18 лет или больше, вывести сообщение: вы достаточно взрослый, чтобы ездить, но если меньше 18 - выведете сообщение,в котором говорится что нужно подождать определённое количество лет, чтобы водить машину.
```sh
Введите свой возраст: 30
Вы достаточно взрослый, чтобы водить.
Введите свой возраст: 15
Вам осталось 3 года до вождения.
```
2. Сравните значения myAge и yourAge с помощью if ... else. На основе сравнения выведите результат в консоль, указав, кто старше (я или вы). Используйте prompt("Enter your age:") для получения возраста в качестве входных данных.
```sh
Введите свой возраст: 30
Ты на 5 лет старше меня.
```
3. Если a больше, чем b, вернуть «a больше, чем b», иначе «a меньше, чем b». Попробуйте реализовать это различными способами:
- используя if else
- тернарный оператор.
```js
let a = 4;
let b = 3;
```
```sh
4 больше 3
```
4. Чётные числа делятся на 2, а остаток равен нулю. Как проверить, является ли число чётным или нет с помощью JavaScript?
```sh
Введите число: 2
2 - чётное число
Введите число: 9
9 является нечётным числом.
```
### Упражнения: уровень 2
1. Напишите код, который может дать оценку студентам в соответствии с их баллами:
- 80-100, A
- 70-79, B
- 60-69, C
- 50-59, D
- 0-49, F
2. Проверьте, является ли сезон: осенью, зимой, весной или летом. Если пользователь ввёл :
- сентябрь, октябрь или ноябрь, сезон осень.
- декабрь, январь или февраль, сезон зима.
- март, апрель или май, сезон весна
- июнь, июль или август, сезон лето
3. Проверьте, является ли день выходным или рабочим днем. Ваш сценарий примет день как вход.
```sh
Какой сегодня день? Суббота
Суббота - выходной день.
Какой сегодня день? СубБоТта
Суббота - выходной день.
Какой сегодня день? Пятница
Пятница рабочий день.
Какой сегодня день? ПяТНИца
Пятница рабочий день.
```
### Упражнения: уровень 3
1. Напишите программу, которая сообщает количество дней в месяце.
```sh
Введите месяц: январь
В январе 31 день.
Введите месяц: ЯНВАРЬ
В январе 31 день
Введите месяц: февраль
Февраль имеет 28 дней.
Введите месяц: феВРаль
Февраль имеет 28 дней.
```
🎉 ПОЗДРАВЛЯЕМ ! 🎉
[<< День 3](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/RU/03_Day/03_booleans_operators_date.md) | [День 5 >>](https://github.com/Asabeneh/30DaysOfJavaScript/blob/master/RU/05_Day/05_day_arrays.md)