博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
请简述以下两个for 循环的优缺点
阅读量:6217 次
发布时间:2019-06-21

本文共 723 字,大约阅读时间需要 2 分钟。

 

今天笔试时候遇到一个问题,找到相似的。

for (i=0; i

 

优点:程序简洁

缺点:多执行了N-1次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。

 

优点:循环的效率高

缺点:程序不简洁

看到网络上还有一种回答: 

前者:

优点:程序简洁
条件判断出现在For里面,意味着,即使我在dosomething()或dootherthing()这2个函数中改变了condition的值,For循环也能正确执行我的意图,因为它在每次循环中都会重新检测conditon的值并针对condition的值做不同动作,所谓以不变应万变,这是难能可贵的.   
缺点:多执行了N-1次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。
如果condition一直未曾改变,我们可怜的if必须每次循环都判断一下condition的真假.牺牲了运行时效率.
后者:
优点:循环的效率高。只进行一次判断,运行时效率高.适合那种condition的值不会改变的情况.
缺点:由于只在一开始进行一次判断,所以失去的改变condition的值的机会,也就是说,即使我在dosomething()中改变了condition的值为false,这个程序也不会改变它的判断,它依然执行着dosomething()的循环.我们不能随时更换我们需要进行的动作。这是牺牲了弹性。

N较大时,建议采用后面这种写法,由于前者老要进行逻辑判断,打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。

转载于:https://www.cnblogs.com/jason-linux/p/10603471.html

你可能感兴趣的文章
浅析C#代理
查看>>
iOS 关于远程推送(push) 的几个问题
查看>>
Light Life 小组Alfha冲刺(第二天)
查看>>
Miller_Rabin (米勒-拉宾) 素性测试
查看>>
【转载】比较排序算法
查看>>
DBUtils
查看>>
java spring cloud版b2b2c社交电商spring cloud分布式微服务-docker-feign-hystrix(六)
查看>>
html之一行代码给table设置标题...
查看>>
(转)超简单的缓存实现
查看>>
26日上午多家网站因DNS故障无法访问 包括CCTV、网易等知名网站
查看>>
java实现动态代理切面编程
查看>>
ros自定义消息
查看>>
Python编码问题整理
查看>>
TranslateAnimation详解
查看>>
TP5 未定义数组索引如何解决
查看>>
android ListView下拉刷新之功能实现
查看>>
开始学习 ubuntu 14.04 各种安装各种坑
查看>>
Java后台使用Websocket教程
查看>>
go语言学习--string、int、int64互相转换,字符串的截取,数组和字符串的转换
查看>>
Linux下添加新硬盘,分区及挂载
查看>>