<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 vale. Перерыв должен закончиться, и он не снижается после того, как условие выполнено. Блок по умолчанию выполняется, если все случаи не удовлетворяют условию.

```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("Введите свой возраст:")`, чтобы получить возраст в качестве входных данных.

   ```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-89, 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)