Вступление
Добрый день! |
ТеорияПомните выпуск про циклы? Конечно помните! Так вот если попробовали сотавить парочку программ самостоятельно (боже, как я на это надеюсь!) у вас могла возникнуть необходимость выйдти из цикла. Как этого добится я не упомянул. Пришло время закрыть это белое пятно. Итак для управления циклами есть 2 функции. break и continue. Судя по названиям они служат для прерывания и продолжения циклов. BREAK (англ. сломать, испортить) - немедленно прекращает выполнение цикла, переходя на следующий за циклом оператор. CONTINUE (англ. продолжение) - обеспечивает продолжение цикла. Давайте рассмотрим примеры:
Этот цикл прервётся при j = 5, несмотря на то что i в этот момент равно 4!
При выходе из цикла в i будет 10, а j =-32764. Почему так? Просто при j >= 5 происходит продолжение цикла, т.е. i := i + 1 не выполняется. Управление передаётся на while i <> 10 do. Но когда j = 32767 прибавляя 1 мы получаем j < 5 и тогда цикл продолжает выполняться нормально.Однако существует второй способ выхода из цикла. Это оператор безусловного перехода. Его смысл заключается в переходе на определённую строчку программы. Записывается он в виде: goto Метка;Метки объявляются в отдельном разделе программы под названием label. И шаблон программы превращается во всё более сложное творение:
Пометить строчку, т.е. поставить на неё метку, можно так:
Итак как вы видите мы просто ставим на строке имя метки и двоеточие. Когда программа натыкается на goto она сразу же переходит на метку, несмотря ни на что! Сразу хочу сказать, что использование goto является плохим тоном. Программа должна быть легко читаемой, а при goto происходят постоянные прыжки по тексту программы. Если вы используете Бейсик, то забудьте об этом !!! Поэтому мы не будем использовать goto в своих программах, ну разве только сегодня для примера. |
Программа
Естественно этот вариант не является единственным. Мы могли сделать цикл while 1 do ... и потом просто проверяя клавишу на совпадение использовать break. Вот так безо всяких вредных goto! |
ПослесловиеПоздравляем всех с днём 7 ноября (эх, знать бы ещё, что это за праздник :) и делаем небольшой перерыв в рассылке до 8-9 числа. Чему будет посвящён следующий выпуск пока остаётся тайной для нас и для вас.... |