procedure TForm1.Button1Click(Sender: TObject);
var
 x:integer;
 label 10 ;
begin
 x:=0;
 10:///就在这里出错了
 x:=x+1;
 if x<20 then goto 10;
 edit1.text:=inttostr(x);
end; 
 
建议不要使用goto语句 
 
 
 

解决方案 »

  1.   

    是label定义的问题,好象不能用数字开头哦
      

  2.   

    为什么不改为:
    procedure TForm1.Button1Click(Sender: TObject);
    var
     x:integer;begin
     x:=0;
     Repeat
       x:=x+1;
     until(x>=20);
     edit1.text:=inttostr(x);
    end;
      

  3.   

    很程序中使用GOTO语句不是个好习惯,建议不要使用
      

  4.   

    lable定义好象不能用数字吧最好不要用goto
      

  5.   

    goto的语法在实际的编程中最好不要用。
    这是一个好习惯。
      

  6.   

    正确的代码应该是:
    Procedure TForm1.Button1Click(Sender: TObject);
    Var
     X:integer;
     Label 10 ;
    Begin
     X:=0;
     10:
     X:=X+1;
     If X<20 Then Goto 10;
     Edit1.Text:=IntToStr(X);
    End; 
    Goto是就语法,建议停止使用,不过你要坚持就请自便。更好的方法是这样的:
    Procedure TForm1.Button1Click(Sender: TObject);
    Var
     x:integer;
    Begin
     x:=0;
     While x<20 Do Begin  //这里也可以使用Repeat ... Until结构。
       x:=x+1;
     End;
     Edit1.text:=inttostr(x);
    End;或这样:
    Procedure TForm1.Button1Click(Sender: TObject);
    Var
     x:integer;
     i:integer;
    Begin
     x:=0;
     For i:=1 to 20 Do Begin
       x:=x+1;
     End;
     Edit1.text:=inttostr(x);
    End;