文章

delphi的goto语句

delphi这类结构很强的语言N多人不推荐使用goto,甚至于我在各类书籍上面都完全不推荐goto语句,可是他的神秘还是让我自己去网上搜索了资料,整理之后发现这个语句大概就是这么用的了

procedure TForm1.Button1Click(Sender: TObject); 
var 
  x: Integer; 
  label n1,n2,n3,4;  //goto的标签可以是标识符, 也可以是0..9999的数字 
begin 
  x := 0; 
  goto n3; 
  n1: x := x+1; 
  n2: x := x+2; 
  n3: x := x+3; 
  4:  x := x+4; 
  ShowMessage(IntToStr(x));  //返回7而不是10 
end;

上述代码直接跳转到了n3
n3赋值之后其实x的值是3了,让我不得其解为什么结果是7
于是DEBUG之后发现N3走完之后,其实他依然是向下执行了的,他不是一个case语句
n3走完之后继续执行4
然后是x+4,结果就是7了
而goto还需要配合标签使用,就是label,goto的标签可以是标识符,也可以是数字.

原文来自:delphi的goto语句,尊重自己,尊重每一个人;转发请注明来源!
0 0

发表评论