51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2810|回复: 9
打印 上一主题 下一主题

[讨论] 一道面试题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-4-8 13:25:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.白盒测试方法中的代码检查法需要重点考虑代码的执行效率,阅读以下两个循环,回答问题1和问题2。



循环1:
for (i=0;i<n;i++)
{
if(condition)
DoSomething();
else
DoOtherthing();
}



循环2:
if(condition)
{
for (i=0;i<n;i++)
DoSomething()
}
else
{
for (i=0;i<n;i++)
DoOtherthing();
}
问题1:循环1的优点和缺点。
问题2:循环2的优点和缺点。

想知道大家的答案..............哪位高手可以指教.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-4-8 15:30:10 | 只看该作者
这是前两年软件评测师考试的一道原题,你可以去找答案~
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-4-8 16:12:05 | 只看该作者
好,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-4-8 17:42:27 | 只看该作者

2楼的能说的详细点不?偶想知道具体的答案……
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-4-8 23:04:45 | 只看该作者
循环一的优点:程序简洁    缺点:效率低
循环二的优点:效率高      缺点:不简洁
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-4-9 12:52:55 | 只看该作者
当n不大的时候二者效率区别并不明显
所以只有当n比较大时才推荐用第二种
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-4-16 13:11:47 | 只看该作者

学习了,必须地谢谢

学习了~~
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-4-16 23:17:58 | 只看该作者

hehe This is easy issue,but I like this.

循环一的优点:程序简洁    缺点:效率低
循环二的优点:效率高      缺点:不简洁
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-5-22 17:51:56 | 只看该作者
第一个:
优点:条件判断出现在For里面,意味着,即使我在dosomething()或dootherthing()这2个函数中改变了condition的值,For循环也能正确执行我的意图,因为它在每次循环中都会重新检测conditon的值并针对condition的值做不同动作,所谓以不变应万变,这是难能可贵的.
缺点:如果condition一直未曾改变,我们可怜的if必须每次循环都判断一下condition的真假.牺牲了运行时效率.

第二个
优点:只进行一次判断,运行时效率高.适合那种condition的值不会改变的情况.
缺点:由于只在一开始进行一次判断,所以失去的改变condition的值的机会,也就是说,即使我在dosomething()中改变了condition的值为false,这个程序也不会改变它的判断,它依然执行着dosomething()的循环.我们不能随时更换我们需要进行的动作。这是牺牲了弹性.
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-5-22 18:23:49 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-16 21:54 , Processed in 0.066848 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表