Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Операторы Stop, End и Exit Sub






    До сих пор мы писали процедуры, которые выполняли свою работу до конца и заканчивали ее только на операторе End Sub, не раньше. Существуют ли операторы, которые подобно операторам выхода из цикла Exit Do и Exit For заставляют компьютер покинуть процедуру, не доходя до ее конца? Такие операторы существуют.

    Оператор End заставляет Visual Basic завершить работу не только процедуры, а всего проекта, не доходя до конечного End Sub. Пример: программа

    Private Sub Command1_Click()

    Print 1;: Print 2;: End: Print 3;

    End Sub

    напечатает 1 2. Правда, заметить это вы успеете только в пошаговом режиме, так как End завершает режим работы и проект мгновенно переходит в режим проектирования.

    Ненавистник пошагового режима мог бы мечтать: " Хорошо бы существовал специальный оператор паузы, чтобы наткнувшись на него, компьютер приостанавливал выполнение программы, а мы могли бы спокойно посмотреть на результаты и подумать". Такой оператор есть, это Stop. Наткнувшись на него, компьютер переходит в режим прерывания и делает паузу до тех пор, пока вы снова не щелкните на кнопке Start. Тогда он продолжает работу с того места, где остановился. Вот вариант программы, при котором вы успеваете разглядеть результат:

    Private Sub Command1_Click()

    Print 1;: Print 2;: Stop: End: Print 3;

    End Sub

    Еще пример: программа

    Private Sub Command1_Click()

    Print 2;: A: Print 3;: End: Print 4;

    End Sub

     

    Private Sub A()

    Print 6;: End: Print 7;

    End Sub

    напечатает 2 6.

     

    Оператор Exit Sub не такой решительный, как End. Он не выбрасывает Visual Basic из режима работы, а просто заставляет компьютер выйти из процедуры, в которой он выполнился. Если он выполнился в вызываемой процедуре, то Visual Basic возвращается в процедуру, ее вызвавшую. Если он выполнился в процедуре обработки события, то Visual Basic просто завершает работу этой процедуры.

    Пример: Заменим в предыдущей программе оба End на Exit Sub:

    Private Sub Command1_Click()

    Print 2;: A: Print 3;: Exit Sub: Print 4;

    End Sub

    Private Sub A()

    Print 6;: Exit Sub: Print 7;

    End Sub

    Эта программа напечатает 2 6 3.

     

    Задание 87: Вот вам программа с процедурами. Вам нужно, не запуская ее, записать на бумажке весь разговор, который ведут герои “Трех мушкетеров”.

    Private Sub Command1_Click()

    Print " Я, король Франции, спрашиваю вас - кто вы такие? Вот ты - кто такой? "

    ATOS

    Print " А ты, толстяк, кто такой? "

    PORTOS

    Print " А ты что отмалчиваешься, усатый? "

    DARTANIAN

    Print " Анна! Иди-ка сюда!!! "

    Exit Sub

    Print " Аудиенция закончена, прощайте! "

    End Sub

     

    Private Sub ATOS()

    Print " Я - Атос"

    End Sub

     

    Private Sub ARAMIS()

    Print " Это так же верно, как то, что я -Арамис! "

    End Sub

     

    Private Sub PORTOS()

    Print " А я Портос! Я правильно говорю, Арамис? "

    ARAMIS

    Print " Он не врет, ваше величество! Я Портос, а он Арамис."

    End Sub

     

    Private Sub DARTANIAN()

    Print " А я все думаю, ваше величество - куда девались подвески королевы? "

    Exit Sub

    Print " Интересно, что ответит король? "

    PORTOS

    End Sub

    Сверьте с ответом. Если не сходится, запустите программу в пошаговом режиме.

     

    Теперь вы достаточно знаете о процедурах, чтобы они стали для вас удобными кирпичиками для постройки программ. Более мощным средством являются процедуры с параметрами, о которых вы сейчас узнаете.

    Задание 88: В программе для задания 60 из 9.3 о продавце автомобилей есть два повторяющихся фрагмента. Сам бог велел сделать их процедурами.

    Задание 89: Аналогичную вещь можно проделать для калькулятора из 5.9

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.