注册 登录
编程论坛 C++教室

goto语句到底是怎么用的?

whexyil 发布于 2007-09-01 22:54, 11985 次点击
在c++里,goto是怎么用的,能解释一下并举例吗?谢谢!
8 回复
#2
福尔摩斯2007-09-01 23:09
#include<iostream>
using namespace std;
int main()
{
int x;
part1:cin>>x;
if(x==1)
goto part1;
else
goto part2;
part2: x*=x;
cout<<x<<endl;
cin.get();
cin.get();
return 0;
}
#3
福尔摩斯2007-09-01 23:17
理解完上边的代码后理解下下边的代码,你会明白goto的用法(主要是标签的作用),和程序编译的顺序结构

#include<iostream>
using namespace std;
int main()
{
int x;
cin>>x;
if(x==1)goto part1;
goto part2;
part1:++x;
part2:x*=x;
cout<<x<<endl;
cin.get();
cin.get();
return 0;
}
#4
blueboy820062007-09-01 23:17
这个东西,好像不怎么提倡的!
#5
福尔摩斯2007-09-01 23:39
是的,短小的直接用if else 解决

如果长的代码,那么直接调用函数(类)解决

goto语句有一个麻烦点就是顺序结构,比如我3楼的代码

如果输入 1

输出结果就是 4

注意,不是 2

因为顺序结构,执行完

part1:++x;

就跟着执行下边的代码

part2:x*=x; //这里的part2标签只有在goto语句时候才用到,其它情况被当作和注释一样不被编译!
cout<<x<<endl;
cin.get();
cin.get();
return 0;


所以连C语言(面向过程程序设计)都不提倡这样用法,更不要说++(面向对象程序设计)了

等你以后用到后边用多了,就会发现,goto是最早被抛弃的语句

[此贴子已经被作者于2007-9-1 23:41:58编辑过]

#6
panxiang882007-09-02 01:17

汇编中的循环选择似乎都是goto原理

#7
青格儿2007-09-02 10:47
汇编中的循环选择就是goto 但C语言里,goto是最早被抛弃的语句 福尔摩斯说的很对啊!
#8
whexyil2007-09-02 23:52
呵呵,谢谢大家了!!
#9
qkjenjoy2007-09-03 08:33

养成好习惯很重要 goto不能用的

1