Web #6 Условные операторы

Алгоритмы с ветвлениями

Любая полноценная программа не может существовать без проверки того или иного условия. Например, находится ли персонаж в игре в зоне действия скрипта, какой возраст пользователя, свободна ли введённая дата бронирования, есть ли у игрока нужный предмет для открытия сундука, попал ли игрок мышкой по предмету и т.д.
Сегодня познакомимся с такими возможностями.

Try it out

1. В вашей папке с сайтами вы создавали папку "Javascript - 4". Скопируйте её, переименуйте на "Javascript - 6". Откройте папку в редакторе. До этого мы писали js-код в файле index.html. Но хорошая практика программирования рекомендует не смешивать js-код и html-разметку в одном файле (помните, мы так же сделали и с CSS – вынесли его в отдельный файл), поэтому давайте создадим отдельный файл и для js-кода.
1.1. Создайте в папке с сайтом новый файл и назовите его "script.js".
1.2. Теперь подключим этот файл в index.html: перед закрывающимся тегом </body> добавьте такой код:
<script src="script.js"></script>
1.3. Открывайте файл script.js в редакторе, будем писать код в этом файле.

2. Первое, что мы сделаем – напишем программу, которая будет просить пользователя ввести его возраст и если ему меньше 14 лет, то выводить сообщение, что доступ разрешён только его родителям. Иначе (то, есть больше или равно 14 лет) – выводить сообщение "Добро пожаловать"
// Получаем от пользователя его возраст и записываем в переменную age 
let age = +prompt("Введите, пожалуйста, ваш возраст");
// Проверяем, если возраст < 14 , то
if (age<14) {
  alert("Доступ разрешён только вашим родителям");
} else { 
  alert("Добро пожаловать");
}
Сохраните файл и откройте index.html в браузере. Вы увидите результат работы скрипта. Протестируйте его работу, вводя такие данные:
13
14
18

3. Вторая программа – это эксперт, который даёт своё описание сегодняшней температуры. В этой программе проверяется уже не одно условие, а множественное.
let temperature = +prompt("Какая температура сегодня в градусах?");
if (temperature<0) {
  alert("Вау! Сегодня реально холодно!");
} else if (temperature < 20) {
  alert("Сегодня прохладно");
} else if (temperature < 24) {
  alert("Погода идеальна.");
} else {
  alert("Жара несусветная");
}

4. Рассмотрим ещё некоторые примеры условий и то, что они будут возвращать:
if (temperature == 36.6) // возвращает true, если температура равна 36.6
if (true) // условие будет выполнятся
if (1) // 1 в javascript означает true, поэтому условие выполнятся будет
if (0) // 0 в javascript означает false, поэтому условие выполнятся не будет
if ("hello") // любое строковое значение означает true

В конспект

Проверка условия if:
if (условие) {
  // команды, если условие true
}

Проверка условия if..else:
if (условие) {
  // команды, если условие true
} else { 
  // команды, если условие false
}

Множественная проверка if .. else if .. else:
if (условие1) {
  // команды, если условие1 true
} else if (условие2) {
 // команды, если условие2 true
} else {
  // команды, если оба условия false
}

Логические операторы:
== равно
> больше
< меньше
>= больше или равно
<= меньше или равно
!= не равно

Задачи

Внимание! Готовые скрипты для выполнения задач сохраняйте в отдельные файлы, отмеченные номером задачи, например: script1.js – для задачи №1, script2.js – для задачи №2.

Задача 6.1*. Выведется ли alert?
if ("0") {
  alert( 'Привет' );
}

Задача 6.2*. Используя конструкцию if..else, напишите код, который будет спрашивать: "Какое «официальное» название JavaScript?". Если пользователь вводит «ECMAScript», то показать: «Верно!», в противном случае – отобразить: «Не знаете? ECMAScript!»

Задача 6.3*. Пользователь вводит число. Программа выводит ответ, какое это число: положительное, отрицательное или ноль.

Задача 6.4*. Пользователь вводит свой возраст. Если ему меньше 3 лет, программа выводит "Здравствуй, малыш!", если меньше 18, то программа выводит "Привет!", если меньше 100, то "Здравствуйте!", иначе – "Какой необычный возраст!".

Задача 6.5*. Пользователь вводит 2 числа. Программа выводит максимальное из них.
Пример:
Ввод: 2 4
Вывод: 4

Задача 6.6**. Пользователь вводит 3 числа. Программа выводит минимальное из них.
Пример:
Ввод: 2 4 7
Вывод: 2

Задача 6.7*. Пользователь вводит 2 числа, затем вводит 1 символ операции, которую нужно совершить над этими числами: + - / или *. В зависимости от выбранной операции, программа выводит на экран результат этой операции над числами.
Пример:
Ввод: 5 7 +
Вывод: 12

Задача 6.8*. Добавить в задачу 7 проверку условия, если пользователь вводит вторым числом 0, чтобы программа не выполняла деление, а выводила на экран надпись "Вы пытаетесь делить на ноль. Это фиаско, братан."

Задача 6.9***. Создать проект "Двери с привидениями". Перед игроком 3 двери. Случайно генерируется число от 1 до 3 – это номер двери, за которой будет привидение. Пользователь угадывает номер двери (от 1 до 3), за которой нет привидения. Если ему повезло, он идёт в следующую комнату и его счёт увеличивается на 1. Так продолжается, пока он не наткнётся на привидение. В этом случае его счёт показывается на экран и игра прекращается.
Видео с готовым проектом:

Вот подсказки:
1) Вам понадобится переменная со счётом.
2) Выполнение программы делайте в цикле с условием:
while (notEnd) {
  //
}

Задача 6.10**. У проекта "Двери с привидениями" есть одна проблема: если пользователь будет вводить числа, не равные 1, 2 или 3, то он всегда будет выигрывать. Исправьте этот баг.

Дополнительные задачи

Доп. задача 6.1*. Ввести с клавиатуры два числа. Определить, что больше, сумма квадратов
или квадрат суммы этих чисел. Ответ вывести в виде сообщения.

Доп. задача 6.2*. Ввести с клавиатуры координаты точек А (х0,у0) и В (х1,у1). Определить,
какая из точек А или В наиболее удалена от начала координат (О(0,0))
Ответ вывести в виде сообщения.

Доп. задача 6.3*. Ввести с клавиатуры три числа, положительные возвести в квадрат, а
отрицательные оставить без изменений.

Доп. задача 6.4*. Ввести с клавиатуры координаты точки А(x,y). Определить, в какой четверти лежит данная точка. Ответ вывести в виде сообщения.

Доп. задача 6.5*. Ввести с клавиатуры три целых числа (a, b, c). Определить, являются ли
они тройкой Пифагора (с2 = а2 + b2или а2=b2+с2 или b2=а2+с2). Ответ вывести в виде сообщения.
Пример:
Ввод: 3,4,5
Вывод: Эти числа являются тройкой Пифагора!

Доп. задача 6.6**. Проверить, является ли год високосным (кратным 4) в пределах от 2000
до нашей эры до 2000 нашей эры. Ввести с экрана год и признак эры, вывести сообщение в виде «656 год нашей эры – високосный»

Доп. задача 6.7**. Вычислить стоимость покупки с учетом скидки. Скидка в 10% предоставляется, если сумма покупки превышает 1000 гривен.

Доп. задача 6.8**. Ввести с экрана число от 1 до 12. По номеру месяца выдать сообщение о
времени года. Если пользователь введет недопустимое число, программа
должна выдать сообщение об ошибке.

Доп. задача 6.9**. Дано двухзначное число. Определить, входит ли в него цифра 5.

Доп. задача 6.10*. Пользователь вводит число n. Вывести все числа кратные пяти для чисел от 1 до n.

Доп. задача 6.11**. Написать программу, которая при вводе числа в диапазоне от 1 до 99
добавляет к нему слово "копейка" в правильной форме. Например, 1 копейка, 5 копеек, 42 копейки.

Доп. задача 6.12**. Написать программу , которая по дате рождения (день d месяц n) определяет знак Зодиака:
с 22 марта по 21 апреля - Овен (4);
с 22 апреля по 21 мая - Телец (5);
с 22 мая по 21 июня - Близнецы (6);
с 22 июня по 21 июля - Рак (7);
с 22 июля по 21 августа - Лев (8);
с 22 августа по 21 сентября - Дева (9);
22 сентября по 21 октября - Весы (10);
с 22 октября по 21 ноября - Скорпион (11);
с 22 ноября по 21 декабря - Стрелец (12);
с 22 декабря по 21 января - Козерог (1);
22 января по 21 февраля - Водолей (2);
с 22 февраля по 21 марта - Рыбы (3).

Использовался материал с сайта https://learn.javascript.ru/ifelse

Комментарии