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的标签可以是标识符,也可以是数字.