可以考虑使用goto的情形:(现阶段使用多为第一种,故现在先对第一种情况进行说明)
1.从多重循环中直接跳出(也可以与switch语句使用)
2. 出错时清除资源
3.可增加程序的清晰度的情况。
for()
{
for()
{
for()
{
.....
goto out;
}
}
}
out:......;
goto 语句在跳出循环上有很大作用 ,同时,它也可以模拟出循环语句 (一般不建议模拟多重循环)
下面两段代码功能一致;
int n;
flag1: cout<<"*****************************"<<endl;
cout<<"请输入菜单选择:"<<endl;
cin>>n;
switch(n)
{
case 0:goto flag2;
case 1:cout<<"操作1"<<endl;goto flag1;
case 2:cout<<"操作2"<<endl;goto flag1;
case 3:cout<<"操作3"<<endl;goto flag1;
//........
default: cout<<"无该编号对应操作,请重新输入。"<<endl;goto flag1;
}
flag2: cout<<"谢谢使用"<<endl;
return 0;
int n;
while(1)
{
cout<<"*****************************"<<endl;
cout<<"请输入菜单选择:"<<endl;
cin>>n;
switch(n)
{
case 0:goto flag2;
case 1:cout<<"操作1"<<endl;break;
case 2:cout<<"操作2"<<endl;break;
case 3:cout<<"操作3"<<endl;break;
//........
default: cout<<"无该编号对应操作,请重新输入。"<<endl;
}
}
flag2: cout<<"谢谢使用"<<endl;
return 0;