コンテンツにスキップ

ラベル (プログラミング)

出典: フリー百科事典『ウィキペディア(Wikipedia)』

: labelgotoswitch

概要

[編集]

BASICBASICGOTOGOSUBgoto[1]PascalCifforgoto使gotogoto使

Javagotobreak使goto

Cswitchcasedefault[2]

Pascal:
procedure GotoExample(a: array of Integer);
label
  100; { ラベルを宣言する }
var
  i: Integer;
begin
  for i := Low(a) to High(a) do begin
    if a[i] < 0 then begin
      WriteLn('Negative number found at: ', i);
      WriteLn('Value = ', a[i]);
      goto 100
    end
  end;
  WriteLn('Negative number not found.');
100:
  WriteLn('End of procedure.') { これがラベルのついた文 }
end;

ISO標準PascalにはCのreturn文に相当する構文がない。ただしモダンなPascal/Object Pascal処理系ではExit手続きやBreak手続きがサポートされるため、上記のようにラベルとgoto文を使う必要はない[3][4][5][6]

procedure CaseExample(x: Integer);
begin
  case x of
  2, 3, 5, 7:
    WriteLn('A prime number less than 10.');
  42:
    WriteLn('The answer.');
  else { 処理系によっては otherwise も使用可能 }
    WriteLn('The others.')
  end
end;

Cでの例はgoto文およびswitch文を参照のこと。

また、サブルーチンのエントリポイントを明示しない言語では、ラベルが事実上サブルーチンのエントリポイントを示すことがある。

古典的REXXでの例:

/* An Example */
...
IF ... THEN SIGNAL fatalError ELSE CALL whatTodo
...
whatTodo:  /* ラベル */
ARG ...
...
RETURN

fatalError:  /* ラベル */
SAY 'もう駄目。落ちます。'
EXIT

脚注

[編集]

関連項目

[編集]