В этом уроке вы научитесь писать простой код, а не просто редактировать то, что уже есть!
Но сначала ещё немного информации.
Что делают хорошие программисты (вместо того, чтобы запоминать)
Опытный программист оставляет примечания к коду, которые, по сути, не являются частью программы, а комментируют то, что сделал программист или почему он это сделал. Когда программа работает, эти комментарии игнорируются, но примечания программиста, называемые комментариями к коду, или просто комментариями, остаются в коде.
Комментарии к коду
Написание комментариев к коду, в целом, является хорошим тоном. Комментарии особенно полезны, когда вы только начинаете программировать и разбираетесь во всём по ходу дела. Они могут быть очень кстати, когда вы пытаетесь понять, почему вы (или другие программисты) сделали что-либо.
Самый простой способ написать комментарий к коду — поставить перед комментарием #, но есть и другие способы:
|
Однострочный комментарий: всё, что находится между # и концом строки, является частью комментария к коду. |
|
Внутристрочный блочный комментарий: всё, что находится между <# и #>, является частью комментария к коду. Внутристрочные блочные комментарии могут находиться между выражениями на одной строке, при этом они не изменяют выражения. |
|
Многострочный блочный комментарий: всё, что находится между <# и #>, является частью комментария к коду. Многострочные блочные комментарии могут занимать несколько строк. |
|
Вложенный блочный комментарий: всё, что находится между <# и #>, является частью комментария к коду, и комментарии могут быть вложенными. Это может быть целесообразно, если требуется закомментировать некоторые выражения в строке для тестирования и отладки без изменения существующего комментария к коду. |
|
Комментарий с отступом: всё, что находится в новых строках после <#> и имеет отступ в четыре пробела, является частью комментария к коду. Первая строка без отступа в четыре пробела не является частью комментария к коду и завершает комментарий к коду. |
Использование условных выражений для принятия решений в коде
Помните выражения if .. else, с которыми вы встретились в Уроке 2? Они известны как условные выражения.
Условные выражения или условия, для краткости, — это средства, с помощью которых программа принимает решения.
Выражение if проверяет, удалось или не удалось что-либо. В случае успеха может быть запущен определённый код. В случае неудачи может быть запущен другой код.
Представьте, что вы задаёте программе вопрос, на который можно ответить да или нет.
В реальной жизни мы все время принимаем решения, отвечая «да» или «нет» на вопрос. Например, вы устали? Если «да», вы ложитесь спать. Если «нет» (либо — else), вы остаётесь смотреть мультфильмы.
Код такого поведения мог бы выглядеть следующим образом:
var Tired: logic = false
var WhatToWatch: string = "ничего"
if (Tired?):
set WhatToWatch = "сны"
else:
set WhatToWatch = "мультфильмы"
Print("Лучше посмотрите: {WhatToWatch}")
# Лучше посмотрите мультфильмы
Вы обратили внимание на вопросительный знак ? в выражении if? Именно так программа Verse проверяет, какое значение имеет выражение типа logic — true или false.
Вложение
Если код вложен, это означает, что он имеет отступ под выражением ключевого слова, такого как if или else. Эти выражения создают новую область видимости.
Область видимости относится к фрагменту кода, в котором могут использоваться имена и связанные с ними значения. Область видимости содержится в блоке кода с отступом.
Например:
if (Tired?):
set WhatToWatch = "сны"
else:
set WhatToWatch = "мультфильмы"
Строка set WhatToWatch = "сны" имеет отступ под строкой if (Tired?):. Такая же схема относится к строке else:.
Вложить можно как одну строку кода, так и блок (несколько строк) кода.
При выполнении программы вложенный код будет выполняться только в контексте кода, в который он вложен.
Использование нескольких условий
Иногда перед принятием решения нужно задать несколько вопросов. В Verse для этого есть операторы and и or. Их называют операторами принятия решений.
При использовании and условия с обеих сторон оператора должны быть истинными или успешными, чтобы всё выражение было успешным.
При использовании or только одно условие должно быть истинным или успешным, чтобы всё выражение было успешным.
| Первое условие | Оператор | Второе условие | Всё выражение |
|---|---|---|---|
| успешно | and | успешно | успешно |
| успешно | and | неуспешно | неуспешно |
| неуспешно | and | неуспешно | неуспешно |
| успешно | or | успешно | успешно |
| успешно | or | неуспешно | успешно |
| неуспешно | or | неуспешно | неуспешно |
Чтобы понять, как работают эти операторы, давайте изменим код.
Даже если вы не устали, было бы неплохо поспать, если вам завтра в школу. Давайте проверим это, создав переменную с именем SchoolTomorrow и используя or для проверки обеих переменных типа logic.
var Tired: logic = false
var SchoolTomorrow: logic = true
var WhatToWatch: string = "ничего"
if (Tired? or SchoolTomorrow?):
set WhatToWatch = "сны"
else:
set WhatToWatch = "мультфильмы"
Print("Лучше посмотрите: {WhatToWatch}")
# Лучше посмотрите сны
Tired по-прежнему имеет значение false, но, поскольку для SchoolTomorrow установлено значение true, всё выражение выполняется успешно и для WhatToWatch устанавливается значение "сны".
Есть ещё один способ проверить несколько условий.
Конструкция if … else if … else создаёт последовательность проверок. Это означает, что после проверки первого условия следующее нужно проверять только в том случае, если предыдущее условие не выполнено.
Что, если завтра не нужно идти в школу и вы не устали? Возможно, вам захочется пойти посмотреть фильм с друзьями. Давайте попробуем адаптировать код под эту ситуацию.
Обновим значение переменной SchoolTomorrow и объявим новую переменную FriendsAvailable.
var FriendsAvailable : logic = true
set SchoolTomorrow = false
Затем нужно обновить код, чтобы проверить, доступны ли друзья, — но только в том случае, если вы не устали или вам завтра не нужно в школу.
if (Tired? or SchoolTomorrow?):
set WhatToWatch = "сны"
else if (FriendsAvailable?):
set WhatToWatch = "фильм с друзьями"
else:
set WhatToWatch = "мультфильмы"
Суперрр! Теперь вы будете спать, только если устали или завтра нужно в школу. Если ответ на любой из вопросов отрицательный, то вы либо будете смотреть фильм с друзьями, либо останетесь дома и будете смотреть мультфильмы, если ваши друзья недоступны.
Благодаря Verse планировать свой вечер стало намного проще!
Устранение неполадок
Помните, в Уроке 1 вы узнали об ошибках компилятора?
При написании кода вы также можете столкнуться с программными ошибками.
Программные ошибки
Программная ошибка или баг — это ошибка в компьютерной программе, которая приводит к неправильному или неожиданному результату. Последствия программной ошибки могут быть незначительными, например изменение цвета текста в сообщении, или более существенными, например вывод текстового сообщения на экран в неподходящее время или даже сбой программы.
Этот термин был популяризирован исследовательницей Грейс Хоппер во времена зарождения компьютерных наук. Она обнаружила мотылька в компьютере и прокомментировала это в своём рукописном журнале для отладки следующим образом: «Первый фактический случай обнаружения жука». С этого момента программные ошибки иногда называют багами (от англ. bug — «жук»).
В то время как ошибки компилятора препятствуют компиляции программы, программная ошибка проявляется только после запуска программы.
Процесс выявления и устранения программных ошибок называется отладкой, а инструмент, помогающий находить ошибки, — отладчиком.
Выводы
- Используйте комментарии к коду, чтобы не забыть и показать другим, почему вы написали код определённым образом.
- Используйте константы для значений, которые должны оставаться постоянными в течение всего времени выполнения программы.
- Используйте переменные для значений, которые должны изменяться в зависимости от входных данных.
- Программные ошибки и ошибки компиляции возникают из-за ошибок в коде.