C++ goto语句的用法(附带实例)
C++ 的 goto 语句又称为无条件跳转语句,用于改变语句的执行顺序。
goto 语句的一般格式如下:
【实例】计算 1~10 的累加和。使用 if 语句判断变量是否小于 10,如果小于就用 goto 语句跳转到标签 label 处,使变量进行累加并自增。具体代码如下:
使用 goto 语句时的注意事项如下:
1) 定义标签时,其后不能紧跟“}”。例如,下面的程序代码是非法的:
2) goto 语句不能跳过除复合语句外的其他变量定义语句。例如,下面代码中 goto 语句试图跳过变量 i 的定义语句,导致编译错误。
goto 语句的一般格式如下:
goto 标签;其中,标签是用户自定义的一个标识符。goto 语句可将程序跳转到由“label:”代码定义的标签处继续执行。
【实例】计算 1~10 的累加和。使用 if 语句判断变量是否小于 10,如果小于就用 goto 语句跳转到标签 label 处,使变量进行累加并自增。具体代码如下:
#include <iostream>
using namespace std;
int main()
{
int i=0 ; //sum 表示累加和,i 控制循环
int sum=0;
label: //定义标签,goto 语句跳转至此
i++;
sum += i; //计算累加和
if (i<10) //如果 i 小于或等于 10
{
goto label; //goto 语句,跳转至标签处
}
cout << "the result :" << sum << endl;
}
运行结果为:
the result :55
程序中,通过 goto 语句和标签实现了一定的循环功能。当语句执行到“if (i<10)”时,如果条件成立,就跳转到标签“label:”处,再一次执行循环变量 i 的自增运算和累加求和运算。当 i 自增至 10 时,计算完累加和,发现“if (i<10)”条件不满足,不再跳转,而是输出累加和计算结果。使用 goto 语句时的注意事项如下:
1) 定义标签时,其后不能紧跟“}”。例如,下面的程序代码是非法的:
{
...
label: //定义标签,goto 语句跳转至此
}
上述代码中,标签后没有执行代码,因此会出现编译错误。解放方法为:补充对应的执行代码。2) goto 语句不能跳过除复合语句外的其他变量定义语句。例如,下面代码中 goto 语句试图跳过变量 i 的定义语句,导致编译错误。
goto label; //goto 语句
int i = 10; //变量 i 的定义语句
label: //定义标签,goto 语句跳转至此
cout<<"goto"<<endl;
解决方法为:将变量定义放在复合语句中。
goto label; //goto 语句
{
int i = 10; //变量 i 的定义语句
}
label: //定义标签,goto 语句跳转至此
cout<<"goto"<<endl;
注意,goto 语句是一种古老的跳转语句,会使程序的执行顺序变得混乱,CPU 执行效率也较低。因此,实际开发中要慎用 goto 语句。
ICP备案:
公安联网备案: