Full transcript
0:00Приветствую вас друзья Меня зовут Сергей
0:02мы с вами продолжаем изучать язык
0:03программирования c+ Plus впрочем наши
0:06уроки довольно универсальные и помогут
0:08вам практически в любом языке
0:10программирования И сегодня у нас очень
0:12особенная и очень важная Тема а которая
0:15называется конструкция логического
0:17выбора If else А в своё время когда я
0:20изучал программирование когда начинал
0:22его изучать после изучения именно этой
0:25темы Я почувствовал в себе какое-то
0:27вдохновение какие-то силы что
0:29действительно я могу написать какую-то
0:30программу И после этого видео вы сможете
0:33сделать так же вообще логический выбор
0:35If else важен настолько что это
0:38прямо-таки фундаментальная основа
0:40программирования на вот этой вот
0:42штуковин на этой теме строится
0:46практически любая программа Даже те же
0:48нейронные сети тоже используют эту штуку
0:50Так что сегодня будет интересно Но перед
0:53тем как мы начнём один небольшой момент
0:55если вы не видели прошлого видео про
0:57логические операции то сейчас
0:59останавливаю
1:00виде переходите внизу по ссылке под этим
1:03видео и смотрите видео предыдущее потому
1:05что вам будет довольно трудно
1:06разобраться если вы ничего не понимаете
1:08в логических операциях Ну для тех кто
1:10уже в курсе о чём мы говорили в прошлый
1:12раз поехали Итак логика любой программы
1:15строится на конструкциях If и else а для
1:19начала Давайте разберём конструкцию If
1:22отдельно с английского и переводится как
1:25если допустим мы хотим решить брать ли
1:28нам с собой зонтик ЕС ИТ дождь и таким
1:33образом Вот это выражение в скобочках
1:35после и мы должны поместить какое-то
1:38утверждение или выражение которое
1:41выполняет какую-то проверку Идёт ли на
1:42улице дождь если оно будет истинным то
1:46Мы выполняем какое-то действие в данном
1:48случае берём с собой зонт Давайте же
1:50посмотрим как это можно реализовать на
1:52практике Итак Давайте напишем программку
1:54которая будет нам подсказывать брать ли
1:57нам с собой зонд в зависимости от
2:00дождь на улице или нет зато идт ли на
2:03улице дождь или нет будет отвечать
2:05булевая переменная которая Как вы
2:08помните может принимать два значения и
2:11то есть либо да либо нет либо истина
2:14либо ложь и буде она у нас называться
2:17из в данном случае мы её
2:23инициализирует то есть по смыслу
2:25переменная подсказывает нам
2:30то есть идёт дождь истина Итак мы
2:33допустим уже знаем что на улице идёт
2:35дождь и как Теперь нам принять решение
2:39брать с собой зонд или нет А в этом нам
2:41и поможет
2:43If если мы в Круглое скобочки Ифа
2:48поместим переменную
2:50булеву из Rain которая у нас сейчас
2:53возвращает истинное значение потому что
2:56у неё значение True то проверка
2:58утверждения конструкции будет истина А
3:01значит всё что находится в скобочках Ифа
3:05наша программа будет выполнять в данном
3:07случае
3:09а мы сюда просто выведем
3:17сообщение идёт дождь Нам
3:22нужен зонт
3:32вот так вот теперь давайте посмотрим
3:35запустим нашу программу и посмотрим что
3:37у нас увидется на
3:40экране на экране выводится сообщение
3:43идёт дождь Нам нужен
3:45зонд теперь сделаем вот что сейчас в
3:48данный момент наша переменная из которая
3:52попадая в условия и оделяет Нужно ли нам
3:55бран
3:59[музыка]
4:00находится в значени то есть она истина
4:03так как переменная У нас в значени это
4:06условие всегда будет истина А значит всё
4:08что в фигурных скобочках будет
4:09выполняться Но что будет если мы сделаем
4:12вот так
4:15вот мы возьмём и присвоить нашей булевой
4:18переменной из значение получается дождь
4:22не идёт
4:26Уде
4:28про этого утверждения То есть если дождь
4:33идёт то нам выводится вот такое
4:35сообщение идёт дождь Нам нужен зонд Но в
4:38данном случае выходит что у нас нету
4:40дождя А значит вот это выражение будет
4:42false то есть ложным а значит мы не
4:45зайдём сюда и вот эта строчка
4:48восемнадцатой не выполнится и наша
4:50программа ничего нам не напишет И не
4:52скажет о том нужно нам брать зонт или
4:53нет собственно так и произошло Давайте
4:57немножечко модифицируем нашу программу у
5:00конструкции If есть Напарник это
5:03конструкция else конструкция else для
5:05использования не всегда
5:07нужна вот как например в данном случае
5:10мы можем в некотором роде обойтись без
5:13неё но во многих случаях и нужна и
5:16пишется она вот
5:18так что будет это означать а будет
5:22означать это вот что если утверждение в
5:24конструкции If истина то выполнится вот
5:27этот блок кода а сюда мы не зайдём сюда
5:31наша программа Не зайдёт и мы пойдём
5:32потом дальше но если вот здесь
5:35утверждение ложное то вот этот код не
5:38выполнится А выполнится код вот здесь
5:40Давайте кстати сейчас его и добавим
5:43сюда напишем здесь вот
5:48что дождя нет
5:52зонт не
5:58нужен берм что эта штука значит Итак
6:02значение is Rain У нас сейчас false то
6:05есть Дождя нету А значит утверждение
6:08попадая в конструкцию If в её круглые
6:11скобки будет ложным значит вот эта часть
6:15кода не выполнится а выполнится часть
6:17кода которая находится в конструкции
6:19else то есть дождя нет зонд не нужен
6:23другими словами If else можно ещё
6:25назвать если и иначе То есть если дождь
6:29есть
6:30нам выводится сообщение идёт дождь Нам
6:32нужен зонд
6:33иначе дождя нет зонд не нужен Давайте
6:37запустим и посмотрим что у нас
6:39получается так как мы присвоили нашей
6:41булевой переменной из R значение false
6:44то проверка вот этого вот выражение
6:46точнее Утверждение на истинность будет
6:49fse а значит выполнится конструкция else
6:52чтобы вам было ещё более Понятно Сейчас
6:55я покажу как это всё работает в
6:56отладчике Давайте
7:00присвой переменной из R то есть оно то
7:04есть вот это утверждение истина поставим
7:06точку останова на й строке там где это
7:10переменная инициализируется и пошагово
7:12проверим нашу программу посмотрим что
7:14зачем выполняется
7:17запускаем сейчас мы работаем с
7:19отладчиком
7:22в режиме работы мы можем
7:25смот буквально дото ВС выполняется в
7:28програ и так в данном случае у нас
7:31инициализируется переменная из Rain она
7:34сейчас у нас со значением
7:37True из Rain у нас True теперь за
7:42следующим шагом вот сейчас у нас
7:44стрелочка показывает на то какая строка
7:46кода у нас будет выполняться Итак со
7:48следующим шагом Мы попадаем в
7:50конструкцию If
7:52else и наш наша конструкция If проверяет
7:56то что мы ей передали в круглые скобочки
8:01там где проверяется истинность
8:02утверждения а мы передали ей туда булеву
8:05переменную которая сейчас в значении
8:08True раз она в значении True то со
8:13следующим шагом наша программа попадёт
8:16на
8:18восемнадцатой идёт дождь Нам нужен зонд
8:21кстати пока у нас ещё ничего не вывелось
8:23на экран но как только выполнится
8:25восемнадцатая строка
8:29мы получаем сообщение сообщение в
8:31консоли идёт дождь Нам нужен
8:33зонд
8:35далее наша программа доходит до
8:38конструкции El но конструкция Не
8:40выполнится потому что она бы выполнила
8:43только в том случае если бы вот здесь на
8:45шестнадцатой строке наше выражение было
8:49а так как оно то в Мы даже не зайдём и
8:5322 строка выводиться не будет то есть мы
8:55просто попали в конец программы ВС
8:58программа на это
9:00Теперь давайте возьмём и поменяем
9:02значение нашей переменной из
9:07на так и запустим нашу программу в
9:11отладчике ещё
9:13раз практически те же самые действия
9:16инициализируется наша переменная из Rain
9:19Но сейчас она у нас fse значит попав в
9:22конструкцию
9:23If Перемен из
9:27Верт ложное выражение то есть выражение
9:30не
9:31истина и получается что сюда мы не
9:35зайдём потому что в If Мы зашли бы
9:37только в том случае если бы выражение в
9:38скобочках Ифа было истинным А так как
9:41оно сейчас у нас сложное мы попадём в
9:44else и у нас выведется сообщение дождя
9:48нет зонд не нужен А теперь давайте это
9:50всё сотрём и напишем ещё один пример
9:53программки которое мы будем вводить
9:55какое-то целое число и если это число
10:00больше п нам программка будет говорить
10:03что число больше пяти А если меньше пяти
10:05программка будет говорить что оно меньше
10:06пяти Как нам это сделать мы объявим
10:09целочисленную переменную
10:11дальше нам нужно её инициализировать
10:14инициализировать мы её будем прямо
10:16вводом с
10:17клавиатуры давайте наверное выведем
10:19сообщение нашему пользователю который
10:21будет
10:22работать с нашей
10:26программой введите число
10:31далее пользователь вводит число с
10:33помощью команды C Кстати если вы не
10:35понимаете что сейчас происходит на
10:37экране Посмотрите предыдущие уроки там я
10:39это всё рассказывал и сделаем вот так
10:42вот конструкцию
10:46ifse Итак сюда мы будем передавать вот
10:49такое вот
10:52условие у нас будет больше птак ечисло
10:57ВНО в с клавиатуры будет больше пяти
11:00наша программа должна нам об этом
11:04сообщать реализуем Мы это с помощью Сита
11:07и будет наша программка нам писать Вот
11:10что ваше число
11:13больше
11:18пяти
11:22л а таким образом если условие истина мы
11:27заходим в блок кода а который идт после
11:30Ифа если условие ЛС то есть не истинно а
11:34ложно мы попадём в блок
11:37кода это будет возможно только если
11:40меньше пти а не больше И здесь у нас
11:43будет
11:44выводиться вот
11:48что ваше
11:51число меньше
11:59Я здесь допустил ошибку у нас наша
12:02программа не всегда будет работать
12:03корректно будет один случай в котором
12:05она будет выдавать неверный результат но
12:08мы с вами эту ошибку немножечко позже
12:10исправим А сейчас Давайте ещё раз
12:12пройдёмся по коду И хорошенько
12:14разберёмся как он работает Итак если
12:17введённое нами число в переменную A
12:19будет больше пти то условие которое у
12:22нас находится в круглых скобках
12:24конструкции If будет истинно Боп вот эта
12:28Тука
12:30сюда вот эти скобочки А значит
12:33выполнится блок кода после
12:35Ифа и нам выведется сообщение ваше число
12:38больше пяти Но если это условие не
12:40выполнится значит это выражение вернёт
12:43результат fse соответственно этот блок
12:47кода не выполнится а зайдём Мы в
12:49конструкцию else и выполнится результат
12:51кода который нам выполнится строка кода
12:54которая выведет нам сообщение ваше число
12:55меньше пяти Давайте запустим нашу
12:58программу и посмотрим как она работает
13:00Итак введите число Давайте введём
13:03единичку ваше число меньше пяти Хорошо
13:06давайте введём десяточку ваше число
13:09больше пяти хорошо А что будет если мы
13:12введём нашей программе число п что она
13:16скажет оно сказало ваше число меньше
13:21пяти это тот самый случай когда наша
13:24программа работает некорректно имы ми
13:29будем сначала разбираться почему так
13:31происходит а
13:33затем будем решать проблему и исправлять
13:36наш код чтобы программа вела себя как
13:38нужно для того чтобы вообще понимать
13:40Почему что-то сломалось и что-то не
13:43работает Рекомендую вам пользоваться
13:45отладчиком Но об отладчике наверное в
13:47каком-то из других уроков ему нужно
13:50посвятить отдельное видео А сейчас я
13:52просто вам покажу как это выглядит
13:54внутри чтобы вы понимали о чём я вообще
13:57говорю запускаем нашу программку
13:59отладчике она просит нас ввести число и
14:01мы вводим Е5 потому что с числом п она у
14:04нас работает некорректно и нам надо
14:06понять почему так происходит точка
14:08останова у нас стоит на восемнадцатой
14:09строке то есть программа дойдёт до
14:11восемнадцатой строки и остановится и мы
14:13сможем посмотреть что там в коде
14:14происходит Мы ввели число пять нажимаем
14:17Enter и мы попадаем на восемнадцатое
14:21останова Итак в переменной A у нас П И
14:24мы сравниваем её с пятёркой
14:27Подумайте что возвращает Вот это
14:29выражение условие такое 5 больше п Ну П
14:34же не больше пти поэтому это условие
14:36вернёт А значит мы попадём
14:39в конструкцию El А в конструкции У нас
14:43написано что число наше число меньше
14:46пяти Таким образом мы нашли нашу ошибку
14:48и поняли Почему наша программа работает
14:50неправильно Давайте теперь исправим её а
14:53для этого мы добавим вот здесь Е
14:55небольшой кусочек кода соб
14:59из конструкции If а выглядеть она будет
15:02Вот так после эса мы напишем ещ один
15:06If добавим ему круглые скобочки и он
15:08будет
15:11проверять равно
15:14лип и
15:17если будет равно п то наша программа
15:21будет выводить
15:24сообщение ваше число равно
15:29пяти Да мы же пишем так
15:35пяти но у нас же осталось ещё сообщение
15:40когда наше число было меньше пяти
15:43поэтому мы пишем ещё один
15:45L и возвращаем туда наше сообщение ваше
15:50число меньше пяти Давайте запустим нашу
15:54программку и посмотрим получилось ли у
15:57нас исправить ошибку Давайте ведём число
15:59п на которой у нас всё сломалось А
16:02теперь программка работает корректно она
16:05сообщает нам что ваше число равно пти А
16:08если мы напишем единичку ваше число
16:10меньше пяти и допустим Ну пускай
16:14восьмёрка будет ваше число больше
16:17пяти всё работает как нужно теперь ещё
16:19раз пройдёмся по коду чтобы проверить
16:21логику его
16:23работы
16:24Допустим мы вводим число большее пяти
16:29попадаем в первый
16:32If смотрим Что здесь возвращает нам вот
16:36это
16:37условие у нас 10 сравниваем мы его с
16:40пятёркой То есть у нас будет больше пяти
16:43в любом случае даже если мы посмотрим
16:47то это выражение возвращает нам вот
16:51здесь это видно А значит мы попам в
16:53первый же блок после Иа он выполнится а
16:57дальше мы попадать не будем потому что
16:59вот эти все блоки будут выполняться
17:00только в том случае если здесь у нас
17:02будет не истина а ложное утверждение
17:05Давайте запустим нашу программку ещё раз
17:08и введём единицу Смотрим как она будет
17:10себя вести у нас меньше пяти значит
17:13здесь у нас
17:14утверждение
17:16fse собственно в отладчике это видно
17:19очень хорошо давайте сейчас ещё раз
17:20наведём так вот здесь у нас
17:24написано значит если мы сделаем
17:27следующий шаг мы попадаем в наше
17:29утверждение els А в этом элсе У нас ещё
17:32один If есть который проверяет нашу
17:36переменную A на равенство с пятёркой но
17:39так как оди не равно пяти это условие не
17:42выполнится А значит мы попадём в
17:44следующий
17:45Эс там где у нас висит сообщение что
17:48наше число меньше пяти мы получили его
17:51на экране и наша программа завершается И
17:54последнее если мы
17:57введём сюда пятку
17:59сравнивать мы е будем с пяткой Итак
18:01первое Выражение у нас потому что 5 не
18:04равно п а второе
18:06выражение True то есть истина потому что
18:105 равно п а значит что у нас отработает
18:14вот эта конструкция которая в вот этом
18:16El ие находится сюда мы уже не попадём
18:19на экране мы получаем сообщение ваше
18:21число равно пяти программа завершается
18:25на этом У меня пока ВС что я хотел
18:27сказать об конструкции If если у вас
18:30возникли какие-то вопросы или вам что-то
18:32непонятно задавайте их внизу в
18:34комментариях под этим видео и в
18:36следующих своих видео Я постараюсь на
18:39ваши вопросы ответить также к этому
18:41видео у нас будет домашнее задание нам
18:44нужно написать программу которая
18:45проверяет число отчётность а число мы
18:48вводим с клавиатуры домашнее задание
18:51точнее его описание вы найдёте внизу под
18:53этим видео а чуть позже я сниму видео
18:55как это домашнее задание делать но
18:58впрочем очень похоже на то что мы делали
19:01с вами сегодня в общем Если вам
19:04понравилось это видео оно было вам
19:05полезно интересно то Ставьте лайк и
19:08подписывайтесь на канал чтобы не
19:09пропустить следующие уроки также
19:11подписывайтесь на нашу группу ВК там вы
19:13тоже найдёте много чего интересного Ну и
19:15всем спасибо за внимание пока