Операторы перехода

Операторы перехода используется для передачи управления из одного блока кода в другой при наступлении определённых условий. Различные операторы перехода могут использоваться только в определённых конструкциях языка. В Fore имеются следующие виды операторов перехода:

Оператор Break прерывает текущий выполняющийся цикл и передает управление на оператор, следующий сразу за циклом. Если в блоке, содержащем данный оператор, нет ни одного объемлющего цикла, то оператор ничего не делает.

Пример:

Sub Main;
Var
    i: Integer;
Begin
    
For i := 1 To 20 Do
        Debug.WriteLine(
"Hi");
        
Break;
        Debug.WriteLine(
"Hello");
    
End For;
End Sub Main;

В результате выполнения примера в консоль выведется только «Hi».

Оператор Continue прерывает выполнение текущей итерации цикла и переходит к выполнению следующей итерации. Если в блоке, содержащем данный оператор, нет ни одного объемлющего цикла, то оператор ничего не делает.

Пример:

Sub Main;
Var
    i: Integer;
Begin
    
For i := 1 To 2 Do
        Debug.WriteLine(i);
        
Continue;
        Debug.WriteLine(
"Hello");
    
End For;
End Sub Main;

В результате выполнения примера цикл выполнится два раза и слово Hello в консоль выводится не будет.

Оператор Return предназначен для осуществления выхода из подпрограммы.

В случае процедур данный оператор используется без параметра и инициирует возврат в точку вызова процедуры.

В случае функции после ключевого слова Return должно следовать выражение, которое возвращается в точку вызова функции. Тип выражения должен соответствовать типу функции.

Оператор Return в тексте подпрограммы может встретиться несколько раз. Если в ходе выполнения подпрограммы не был выполнен ни один из операторов Return, то осуществляется выход из подпрограммы по концу ее тела. Если подпрограмма является функцией и выход из функции осуществляется не по оператору Return, а по концу тела функции, то результатом функции будет считаться некоторое случайное значение.

Пример:

Sub ReturnSample;
    
Function GetSummAB(a: Integer; b: Integer): Integer;
    
Begin
        a := b;
        b := 
10;
        
Return a + b;
    
End Function GetSummAB;
Var
    a: Integer;
Begin
    a := 
2;
    
If GetSummAB(a, 2) = 12 Then
        
Return
    
End If;
    Debug.WriteLine(
"End");
End Sub ReturnSample;

При выполнении метода ReturnSample вызывается вложенная функция GetSummAB. Результатом функции является сумма двух аргументов. В процедуре проверяется результат функции GetSummAB. Если результат равен «12», то осуществляется выход из процедуры.

См. также:

Руководство по языку Fore