这两种死循环的写法, 有什么不同吗?或者一样的
方法一:
for(;;){}
方法二:
while(true){}
我知道效果一样, 会为会有底层执行哪个更优化一样的东西?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
方法一:
for(;;){}
方法二:
while(true){}
我知道效果一样, 会为会有底层执行哪个更优化一样的东西?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
效果一样,策略不一样。
for(1;2;3){4}:for第一次不执行3的位置,第二次,执行4位置后,先执行3位置,在执行2判断,条件符合,继续执行。
while(1){2}:先判断1,条件成立,执行2,否则退出。循环执行。
从策略上看,for在循环时会有2步动作,而while只有一步,这样死循环的话while效率会更高。
当然,编译器是很聪明的,一旦 for 1和3的位置都没有条件,会自动编译成while。(java是这样,其他编译器就不知道了)
用c确认过了,是一样的