标题:[讨论]for与goto 哪个的效率更高?
取消只看楼主
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
结帖率:78.95%
 问题点数:0 回复次数:8 
[讨论]for与goto 哪个的效率更高?

#include <iostream>

using namespace std;

int main()
{
cout<<"The for run"<<endl;

double num1 = 0;
double num2 = 0;
cin >> num2;
for (num1; num1 < num2; num1 ++)
{
cout << " num1 = " << num1 <<endl;
}
cout << "END.."<<endl;
cin.get();
return 0;
}

#include <iostream>

using namespace std;

int main()
{
cout<<"The goto run"<<endl;
double num1 = 0;
double num2 = 0;
cin >> num2;
start:
if (++num1 >= num2)
{
goto end;
}
else
{
cout << " num1 = " << num1 <<endl;
goto start;
}
end:
cout << "END.."<<endl;
cin.get();
return 0;
}

执行同样的任务,这两具程序哪个会运行快些,如果存在,为什么,如果不存在又为什么?
搜索更多相关主题的帖子: goto 效率 DIV endl 
2007-06-19 10:01
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
++num1 不会产生临时变量,我想是不会影响的.

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-06-19 13:53
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
呵呵...goto语句不提倡用,这个我是清楚得很的,但我讨论的不是应不应该用的问题.

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-06-19 17:25
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
看来这些问题的研究得等我把C++学会应该怎么用再去翻汇编了.
以后不发这种贴了,还不够格...

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-06-19 18:55
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
要包含什么头文件用什么成员函数,谢谢!

[此贴子已经被作者于2007-6-19 19:56:55编辑过]



/images/2011/147787/2011051411021524.jpg" border="0" />
2007-06-19 19:53
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
以下是引用anthony634在2007-6-19 13:55:34的发言:
无条件跳转吧,一般没人这么写,程序是先给人看再给机器看的

我的好像是有条件跳转


/images/2011/147787/2011051411021524.jpg" border="0" />
2007-06-20 09:20
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
以下是引用野比在2007-6-19 23:29:39的发言:
用clock()函数...
我运行了1e10次 long=long*long
结果耗时:
for循环 4736ms
goto 4547ms
..
over

差两秒有多,乍地会有这种差别的!


/images/2011/147787/2011051411021524.jpg" border="0" />
2007-06-20 09:22
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
在C++里看似是(其实我只是开个玩笑),变成汇编了我就不知道了....

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-06-20 09:55
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
看错了....

/images/2011/147787/2011051411021524.jpg" border="0" />
2007-06-20 20:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-148610-1-1.html




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

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