мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
pascal:clauses [20/10/2009 02:14] – создано ybezrukovpascal:clauses [20/10/2010 10:15] (текущий) oca
Строка 1: Строка 1:
 ===== Ветвление в программе ===== ===== Ветвление в программе =====
 +FIXME
  
 +Оператор //if// (или условный оператор) в **краткой форме** служит, чтобы выполнить какие-то действия, если выполняется некоторое условие.
 +
 +<code pascal| Простой условный оператор - проверка условия>
 +var 
 +  x,y,z:integer;
 +begin
 +  if x <> 0 then
 +  begin
 +    writeln(y / x);
 +  end;
 +  
 +end.
 +</code>
 +
 +**Полный** оператор //if// служит для разделения ход выполнения программы на две ветви в соответствии с некоторым условием, 
 +
 +<code pascal| Полный условный оператор - разветвление программы>
 +var 
 +  x,y,z:integer;
 +begin
 +  if x < 0 then
 +  begin
 +    ...  // Ветка с отрицательным значением X;
 +  end
 +  else
 +  begin
 +    ... // Ветка с положительным или нулевым(!!!) значением X;
 +  end;
 +end.
 +</code>
 +
 +<code pascal| Перебор вариантов>
 +var 
 +  x,y,z:integer;
 +begin
 +  case x of
 +    1           : writeln (x);
 +    2, 3, 4     : writeln (y);
 +    5 .. 7      : writeln (z);
 +    8, 9 .. 12  : writeln (x, y, z);
 +  else
 +    writeln ('Ошибка')
 +  end; 
 +end.
 +</code>
 +
 +В большинстве версий языка Pascal, включая Free Pascal, допускается чтобы метки были неупорядочены, но не допускается неоднозначность: 
 +
 +<code pascal| Перебор вариантов>
 +var 
 +  x,y,z:integer;
 +begin
 +  case x of
 +    1, 2        : writeln (x);
 +    2, 3, 6     : writeln ('Ошибка, о которой нам скажет компилятор');
 +    5 .. 7      : writeln (z);
 +  else
 +    writeln ('Ошибка !')
 +  end; 
 +end.
 +</code>
 +
 +__Обратите внимание__ - 
 +в операторе ''case'' перед ''else'' можно ставить точку с запятой;
 +оператор ''case'' заканчивается непарной операторной скобкой ''end'' !