Label (computer science)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Label (computer science)の意味・解説 

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

(Label (computer science) から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/04/15 18:17 UTC 版)

プログラミング言語において、ラベル: label)とは特定のを表すために付けられる識別子である。一般に、goto文によるジャンプ先や、switch文による分岐先といった、処理制御の移動先を指定する場合などに用いられる。

概要

古典的BASICでは、行番号自体がラベルになっている。BASICのGOTO文はジャンプ先の指定にこの行番号を利用し、サブルーチン呼び出しのGOSUB文でも行番号を指定するが、goto文はサブルーチンを飛び越えた大域ジャンプも可能であるなど、制御の流れの把握が困難となる「スパゲッティプログラム」や不具合(バグ)の原因となりやすかった[1]。後発のPascalCといった構造化プログラミングに対応した言語(構造化言語)では、if文for文、サブルーチン呼び出しと復帰といった制御構造の記述構文が高度に抽象化されたことによって、行番号が不要となり、ジャンプの意図が不明瞭になりがちなgoto文をほとんど必要としなくなった。ラベルを使用したgoto文自体は機能として提供されているものの、ジャンプ先として指定できるのは同じサブルーチン内に記述されたラベルのみであり、サブルーチンを飛び越える大域ジャンプはできなくなっている。なお、多重ループから一度に抜けるときや、サブルーチンを抜ける前の後始末処理を一か所でまとめて記述するときは、goto文を使ったほうが簡潔かつ低コストで書けることもある。

Javaにはgoto文は存在しないが、ラベル付きbreak文が用意されており、多重ループからの脱出などに限定して使うことができる(機能制限されたgoto文の一種とも言える)。

C系言語のswitch文による分岐では、比較対象である整数定数を持つcaseラベルと、それ以外に該当するdefaultラベルを文または複文に対して指定することができる[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

脚注

関連項目




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Label (computer science)」の関連用語

Label (computer science)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Label (computer science)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのラベル (プログラミング) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS