goto语句用法
2012-11-04 20:10
176 查看
goto只能在函数体内跳转,不能跳到函数体外的函数。即goto有局部作用域,需要在同一个栈内。
需要在要跳转到的程序段起始点加上标号。如下例中的part2。
1.goto 语句可用于跳出深嵌套循环
[cpp] view
plaincopyprint?
#include<iostream>
using namespace std;
int main()
{
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
for(int k=0;k<10;k++)
{
cout<<i*j*k<<" ";
if(216==i*j*k)
goto part2;//break是跳不出多重循环的
}
cout<<"此处被省略"<<endl;
part2:
cout<<"part2"<<endl;
system("pause");
}
2.goto语句可以往后跳,也可以往前跳
[cpp] view
plaincopyprint?
#include<iostream>
using namespace std;
int main()
{
int x,sum=0;
//定义标号L1
L1: cout<<"x=";
cin>>x;
if (x==-1)
goto L2; //当用户输入-1时,转到L2语句处
else
sum+=x;
goto L1; //只要用户没有输入-1,则转到L1语句处,程序一直将用户的输入默默地累加到变量sum中。
//定义标号L2
L2: cout<<"sum="<<sum<<endl;//一旦转到L2,将输出累计结果,程序运行结束。
system("pause");
}
3.也可以跳出switch,或者在case之间进行跳转
如:
[cpp] view
plaincopyprint?
#include<iostream>
using namespace std;
int main()
{
char a;
L1:
cout<<"请输入一个字符"<<endl;
cin>>a;
switch(a)
{
case 'a':
cout<<"case a"<<endl;
goto L1;
//break;
L2:
case 'b':
cout<<"case b"<<endl;
break;
case 'c':
cout<<"case c"<<endl;
// break;
goto L2;
default:
break;
}
system("pause");
}
需要在要跳转到的程序段起始点加上标号。如下例中的part2。
1.goto 语句可用于跳出深嵌套循环
[cpp] view
plaincopyprint?
#include<iostream>
using namespace std;
int main()
{
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
for(int k=0;k<10;k++)
{
cout<<i*j*k<<" ";
if(216==i*j*k)
goto part2;//break是跳不出多重循环的
}
cout<<"此处被省略"<<endl;
part2:
cout<<"part2"<<endl;
system("pause");
}
2.goto语句可以往后跳,也可以往前跳
[cpp] view
plaincopyprint?
#include<iostream>
using namespace std;
int main()
{
int x,sum=0;
//定义标号L1
L1: cout<<"x=";
cin>>x;
if (x==-1)
goto L2; //当用户输入-1时,转到L2语句处
else
sum+=x;
goto L1; //只要用户没有输入-1,则转到L1语句处,程序一直将用户的输入默默地累加到变量sum中。
//定义标号L2
L2: cout<<"sum="<<sum<<endl;//一旦转到L2,将输出累计结果,程序运行结束。
system("pause");
}
3.也可以跳出switch,或者在case之间进行跳转
如:
[cpp] view
plaincopyprint?
#include<iostream>
using namespace std;
int main()
{
char a;
L1:
cout<<"请输入一个字符"<<endl;
cin>>a;
switch(a)
{
case 'a':
cout<<"case a"<<endl;
goto L1;
//break;
L2:
case 'b':
cout<<"case b"<<endl;
break;
case 'c':
cout<<"case c"<<endl;
// break;
goto L2;
default:
break;
}
system("pause");
}
相关文章推荐
- goto语句的用法及缺陷
- goto语句用法
- goto语句用法
- &&在goto语句中的用法
- goto语句的用法
- GOTO语句用法
- SQL 语句 as 的用法
- 【PB】在PB中嵌入式sql语句"in"的用法
- 关于goto语句能不能从复杂的嵌套循环判断中跳出去的问题讨论
- Delphi异常处理try except语句和try finally语句用法以及区别
- sql语句中 limi的用法
- 关于goto语句能不能从复杂的嵌套循环判断中跳出去的问题讨论
- mysql索引提高优化order by语句用法介绍
- C语言goto语句以及用goto语句构成循环
- 使用控制结构——顺序控制语句——GOTO和NULL
- bash 编程中循环语句用法
- sql语句like的用法 有些正则表达式可以通过like实现
- 为什么使用goto语句作错误处理
- mysql alter 语句用法,添加、修改、删除字段等
- SQL中Case语句用法讨论