Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Do Label
} Write " Готово! " Do { Set a=5 Do Label1 } While y> 4, y< 10 Write " Готово! "
Важное отличие между этими конструкциями заключается в том, что в случае Do/While блок кода выполняется хотя бы один раз, чего нельзя сказать о While. Команда Write в обоих примерах не входит в циклы. Как было показано в примерах для команды For, команда Quit внутри блока кода прерывает цикл. Команда Goto может передавать управление в любую точку вне блока кода или на метку внутри данного блока на том же уровне, но не в другой блок кода, независимо от его местоположения (внутри или вне текущего блока). Команда CONTINUE Команда CONTINUE может использоваться в пределах блока кода, следующего за командами For, WHILE, или Do WHILE. Это приводит к переходу обратно на начало цикла для проверки необходимости повторного выполнения этого блока кода. Таким образом, команда CONTINUE имеет тот же эффект, что и достижение закрывающей скобки блока кода. Команда CONTINUE может быть использована с постусловием. Как и после любой безаргументной команды, после нее должно быть минимум два пробела. В качестве примера возьмем фрагмент кода из раздела о циклах For, который распечатывает первые сто простых чисел. Set pa=1 For p=3: 2 { CONTINUE: ' $$" PrimeTest (p) Write!, p, " простое" Set pa=pa+1 If pa> 100 { Quit } }
Если функция $$^PrimeTest(р) возвращает 0, текущее выполнение тела цикла прерывается. Если получена 1, значит, было найдено простое число, постусловие в команде не будет выполнено и команда CONTINUE будет пропущена. Основные правила для блоков {кода} Следующие правила относятся к блокам кода внутри управляющих конструкций: § Вход в управляющую конструкцию может осуществляться только в ее начало, но не на метку внутри нее. § Аналогично, вход в блок кода должен выполняться только в начало «{». § Использование Goto внутри блока кода допустимо, только если переход осуществляется: 1. внутри того же блока; 2. в блок кода, внутрь которого вложен текущий блок кода; 3. на строку вне всех блоков кода. Goto не может передать управление в новый блок кода.
Примеры применения блоков кода Следующие несколько примеров помогут понять основные принципы. Классическая условная конструкция If /Else в одной строке: If x> 3, y< 4 {Set z=1 Do label1) Else (Set z=2 Do label2} Функционально эквивалентен первому, но размещен в нескольких строках программы: If x> 3, y< 4 { Set z=1 Do label1 } Else { Set z=2 Do label2 } Пример программы с числами Фибоначчи. Программа набирается в Caché Studio, текст программы приведен ниже:
|