2.7 goto语句

简介

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

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

goto label;

注意事项

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

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

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

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