Label 的用法 [Pascal]

E.G.

Label a;

begin

{1}

end.

Label b;

begin

{2}

end.

如果我想由{1}跳到 Label b 應該點打.?

PS. 如果可以提供一些label 的用法或相關 procedure 或 function 更佳 (不為必須)

1 個解答

評分
  • 1 十年前
    最愛解答

    道先 Label 一定要在同一個 Function / Procedure 內,而且不可以跳入 Scope (e.g. For loop, whle loop) 內。 由於太耐沒用 Pascal 了,Syntax 可能不對,請諒。

    procedure A

    label lbl_A, lbl_B;

    var

    a, b, c : integer;

    begin

    for a := 1 to 10 do

    begin

    for b := 1 to 10 do

    begin

    if b = 5 then

    { OK, jump out the scope }

    goto lbl_A;

    end;

    lbl_A:

    writeln("After Lbl_A");

    { OK, same scope }

    goto lbl_B;

    writeln("Between Lbl_A and Lbl_B");

    lbl_B:

    writeln("Lbl_B");

    end;

    { Error, cannot jump into scope }

    goto lbl_A;

    end;

還有問題嗎?立即提問即可得到解答。