| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11985 人关注过本帖
标题:goto语句到底是怎么用的?
只看楼主 加入收藏
whexyil
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-8-31
收藏
 问题点数:0 回复次数:8 
goto语句到底是怎么用的?
在c++里,goto是怎么用的,能解释一下并举例吗?谢谢!
搜索更多相关主题的帖子: goto 语句 
2007-09-01 22:54
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
收藏
得分:0 
#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;
}

自我放逐。。。
2007-09-01 23:09
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
收藏
得分:0 
理解完上边的代码后理解下下边的代码,你会明白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;
}

自我放逐。。。
2007-09-01 23:17
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
这个东西,好像不怎么提倡的!

2007-09-01 23:17
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
收藏
得分:0 
是的,短小的直接用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编辑过]


自我放逐。。。
2007-09-01 23:39
panxiang88
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-7-21
收藏
得分:0 

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

2007-09-02 01:17
青格儿
Rank: 4
等 级:贵宾
威 望:11
帖 子:698
专家分:20
注 册:2007-7-31
收藏
得分:0 
汇编中的循环选择就是goto 但C语言里,goto是最早被抛弃的语句 福尔摩斯说的很对啊!
2007-09-02 10:47
whexyil
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-8-31
收藏
得分:0 
呵呵,谢谢大家了!!
2007-09-02 23:52
qkjenjoy
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2007-8-24
收藏
得分:0 

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

2007-09-03 08:33
快速回复:goto语句到底是怎么用的?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044901 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved