简介

Tips:不要在程序中使用goto语句,它会使得程序既难理解又难修改。

goto语句的作用是从当前位置无条件跳转到同一函数内的另一条语句。

  1. goto label;

注意事项

和switch语句类型,goto语句也不能将程序的控制权从变量的作用域之外转移到作用域之内:

  1. // ...
  2. goto end;
  3. int ix = 10;
  4. end:
  5. // 错误: 此处的代码需要使用ix, 但是goto绕过了它的声明

跳回到变量定义之前是合法的,这时候系统将销毁该变量并重新创建它:

  1. begin:
  2. int sz = get_size();
  3. if (sz <= 0) {
  4. goto begin; // goto语句执行后将销毁sz, 然后重新定义并初始化sz
  5. }