Операторы цикла while и repeat
Вопрос № 16 Условные операторы в Turbo Pascal. Операторы выбора. Выбор по ключю Условный оператор IF Условный оператор имеет полную и краткую формы. Полная форма условного оператора выглядит следующим образом: if условие then оператор1 else оператор2. В качестве условия указывается некоторое логическое выражение. Если условие оказывается истинным, то выполняется оператор1, в противном случае выполняется оператор2. Краткая форма условного оператора имеет вид: if условие then оператор. Если условие оказывается истинным, то выполняется оператор, в противном случае происходит переход к следующему оператору программы. В случае конструкции вида: if условие1 then if условие2 then оператор1 else оператор2, else всегда относится к ближайшему предыдущему оператору if, для которого ветка else еще не указана. Если в предыдущем примере требуется, чтобы else относилась к первому оператору if, то необходимо использовать составной оператор: if условие1 then Например: if a<b then Оператор выбора CASE Оператор выбора выполняет одно действие из нескольких в зависимости от значения некоторого выражения, называемого переключателем. Он имеет следующий вид: case переключатель of Переключатель представляет собой выражение порядкового типа или строкового типа, а списки выбора содержат константы совместимого по присваиванию типа. Как и в операторе if, ветка else может отсутствовать. Оператор case работает следующим образом. Если в одном из списков выбора найдено текущее значение переключателя, то выполняется оператор, соответствующий данному списку. Если же значение переключателя не найдено ни в одном списке, то выполняется оператор по ветке else или, если ветка else отсутствует, оператор case не выполняет никаких действий.
Список выбора состоит либо из одной константы, либо для перечислимого типа из диапазона значений вида a..b (константа a должна быть меньше константы b); можно также перечислить несколько констант или диапазонов через запятую. Например: case Country of case DayOfWeek of Списки выбора не должны пересекаться. Например, следующий фрагмент case i of приведет к ошибке компиляции. Оператор цикла for Оператор цикла for имеет одну из двух форм: for переменная:= начальное значение to конечное значение do или for переменная:= начальное значение downto конечное значение do Кроме того, переменную можно описать непосредственно в заголовке цикла: for переменная: тип:= начальное значение to или downto конечное значение do или for var переменная:= начальное значение to или downto конечное значение do В последнем случае используется автоопределение типа переменной по типу начального значения. В двух последних случаях область действия объявленной переменной распространяется до конца тела цикла, которое в данном случае образует неявный блок. Вне тела цикла такая переменная недоступна, поэтому следующий цикл может использовать переменную с тем же именем: for var i:= 1 to 10 do Текст от слова for до слова do включительно называется заголовком цикла, а оператор после do - телом цикла. Переменная после слова for называется параметром цикла. Для первой формы цикла с ключевым словом to параметр цикла меняется от начального значения до конечного значения, увеличиваясь всякий раз на единицу, а для второй формы ключевым словом downto - уменьшаясь на единицу. Для каждого значения переменной-параметра выполняется тело цикла. Однократное повторение тела цикла называется итерацией цикла. Значение параметра цикла после завершения цикла считается неопределенным.
Переменная-параметр цикла может иметь любой порядковый тип. При этом начальное и конечное значения должны быть совместимы по присваиванию с переменной-параметром цикла. Например: var en: (red,green,blue,white); Если для цикла for... to начальное значение переменной цикла больше конечного значения или для цикла for... downto начальное значение переменной цикла меньше конечного значения, то тело цикла не выполнится ни разу. Если цикл используется в подпрограмме, то переменная-параметр цикла должна быть описана как локальная. Наилучшим решением в PascalABC.NET является описание переменной в заголовке цикла. Изменение переменной-параметра цикла внутри цикла является логической ошибкой. Например, следующий фрагмент со вложенным оператором for является ошибочным: for i:= 1 to 10 do Операторы цикла while и repeat Оператор цикла while имеет следующую форму: while условие do Условие представляет собой выражение логического типа, а оператор после do называется телом цикла. Перед каждой итерацией цикла условие вычисляется, и если оно истинно, то выполняется тело цикла, в противном случае происходит выход из цикла. Если условие всегда оказывается истинным, то может произойти зацикливание: while 2>1 do Оператор цикла repeat имеет следующую форму: repeat В отличие от цикла while, условие вычисляется после очередной итерации цикла, и если оно истинно, то происходит выход из цикла. Таким образом, операторы, образующие тело цикла оператора repeat, выполняются по крайней мере один раз. Обычно оператор repeat используют в ситуациях, где условие нельзя проверить, не выполнив тело цикла. Например: repeat Если условие всегда оказывается ложным, то может произойти зацикливание: repeat
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|