Алгоритмы очень редко бывают линейными, то есть прямыми, как рельсы. Чаще всего в зависимости от некоторых параметров, они могут пойти различными путями для достижения своих целей. Давайте рассмотрим на примере алгоритма. Представим, что вы собираетесь пойти на работу. Вам необходимо знать, стоит ли взять с собой зонт. Выяснение того, что стоит ли брать с собой зонт является целью нашего алгоритма. Для достижения данной цели мы и построим прогноз погоды, и ЕСЛИ обещают солнечную погоду, ТО зонт мы брать не будем, ИНАЧЕ же стоит его взять.
Для организации подобных ветвлений в программировании вам помогут условные операторы if – else. В общем виде его можно представить так:
1 2 3 4 5 |
if (<условие, например: weather == «солнечная»>) { <что делать, если условие выполнено (погода таки солнечная)> } else { <что делать во всех остальных случаях, например, если обещали дождь> } |
Давайте рассмотрим данный пример более подробно. Сперва идет ключевое слово if. После чего в круглых скобках идет условие. Вспомните про статью в которой я говорил про булевы значения. Вот именно они и должны содержатся в этих круглых скобках. По сути вы можете писать там все что угодно, что в итоге вернет вам true или false (самое главное, чтобы содержание данных скобок согласовалось с логикой программы).
Далее после круглых скобок идут фигурные скобки. Содержимое данных фигурных скобок выполнится лишь в том случае, если в круглых скобках – истина. Если же условие не выполнится, то содержание фигурных скобок будет проигнорировано. Примеры с оператором if:
1 2 3 4 5 6 7 |
if (true) {} if (11 == 6+5) {} var a = 1997; if (a<2000) {} var boolVal = a * 3 > 2; if (boolVal) {} if (window.prompt (‘Ваше имя:’) == ‘Дмитрий’) {} |
Теперь немного подумайте, которые условия выполнятся, а какие нет.
Двигаемся дальше. После закрывающей фигурной скобки следует слово else, а после этого слова идут еще одни фигурные скобки. Код содержащийся в этих фигурных скобках выполнится лишь в том случае, если условие будет ложным – то есть не выполнится. Данная часть является не столь важной. Если вы посмотрите на примеры приведенные выше. То вы наверное заметите, что части с else там отсутствует. Сработает это точно так же, как если бы в фигурных скобках после else было бы пусто.
На самом же деле понять и запомнить, как работает условный оператор if-else не так уж и трудно:
1 2 3 4 5 |
если (условие выполняется) то { выполняется данная часть кода } иначе { Тогда выполняется данная часть кода } |
Рассмотрим наш с вами пример:
1 |
если (будет солнечная погода) то {зонт не нужно брать} иначе {зонт нужно взять}. |
Для начала мы с вами попробуем написать пока еще примитивную и бесполезную, но все же программу. Возьмем для этого задачу которую мы с вами разбирали выше. Пусть наша программа будет спрашивать нас о том, какую погоду нам обещали гидрометцентры и после нашего ответа советовала, стоит ли нам брать собой зонт. Далее я привел листинг код программы с комментариями:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<!doctype html> <html> <head> <title>Learning</title> </head> <body> <script>//Начало JavaScript кода //для начала спросим пользователя какую погоду обещали // и сравним ее с интересующим нас вариантом if (window.prompt(`Какую обещали погоду?`) == `Солнечную`) { // если погоду обещали солнечную, то говорим, что зонт не нужен window.alert (`Зонт можно не брать`); } else { // если же ответ иной, то скажем, что зонтик стоит прихватить window.alert (`Стоит взять зонтик!`); } </script>//Конец JavaScript кода </body> </html> |
Напоминаю вам в последний раз, что код мы набираем в файле index.html, а просматриваем в браузере открыв данный файл. Если он уже у вас открыт – не забудьте перезагружать страницу, чтобы вы смогли увидеть изменения.
При написании кода данной программы можно встретится с большим количеством проблем такого рода как: Вам придётся вводить строго слово «Солнечную», причем слово обязательно должно начинаться с большой буквы. А если же человек который будет использовать данную программу напишет слово «Солнце»? Или же напишет слово «солнечную» с маленькой буквы? Или же напишет всеми большими буквами. Для устранения данной проблемы давайте доработаем наш с вами код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<!doctype html> <html> <head> <title>Learning</title> </head> <body> <script>//Начало JavaScript кода //Для удобства я оставил ввод пользователя в переменную var inp = window.prompt ("Какую обещали погоду на сегодня?"); // далее я немного поработал с данной переменной. Сделав буквы для начала маленькими // методом toLowerCase (), а после этого сократил длину строки до 4 символов, /* начиная с нулевого симовла (незабывайте о том, что при программировании нумерация всегда начинается с нуля */ inp = inp.toLowerCase().substr(0, 4); //после этого сравним оставшиеся 4 первые буквы с нашим шаблоном if(inp == "солн"){ // теперь нам с вам подходят такие строковые значения ка «СОЛНЦЕ» и «солнечный день» // а также все слова, которые начинаются на «солн» window.alert ("Зонт можно не брать"); } else { /* если же ответ получился какой ни будь другой то предположим, что нам необходмио прихватить собой зонт */ window.alert ("Стоит взять зонтик!"); } </script>//Конец JavaScript кода </body> </html> |
Но во время облачной погоды, зонтик тоже скорее всего не понадобится. Как бы нам запихнуть сюда и эту проверку. Это мы рассмотрим в следующем уроке.