关闭

for(;;) 和 while(true) 的区别

标签: javac死循环whilefor
47人阅读 评论(0) 收藏 举报
分类:

在标准的语义上是完全等价的;
那我们就来看一下在jvm级别上是不是等价的;

for(;;){}的编译结果

flags: ACC_PUBLIC, ACC_STATIC
    Code:
      stack=0, locals=1, args_size=1
         0: goto          0
      LineNumberTable:
        line 3: 0
      StackMapTable: number_of_entries = 1
        frame_type = 0 /* same */

while(true){}的编译结果

flags: ACC_PUBLIC, ACC_STATIC
    Code:
      stack=0, locals=1, args_size=1
         0: goto          0
      LineNumberTable:
        line 3: 0
      StackMapTable: number_of_entries = 1
        frame_type = 0 /* same */

看起来没有什么不同,实际上也是一样.没有什么不同
但是 while(true)在C和C ++(C#?)的最高设置的编译警告。
也许对于Java来说不是一个问题,但是如果你有时候用其他语言写的话,for(;;)是一个更好的开发习惯。

最后再说一下,两者使用没有区别,实践中使用哪个自己喜欢就好.

0
0
查看评论

【转】for(;;)和while(true)的区别

转自http://bbs.csdn.net/topics/310037252 一直知道for(;;)和while(true)都是无限循环,今天搜了下原理 while VS. for    在编程中,我们常常需要用到无限循环,常用的两种方法是while (1) 和 for ...
  • ashqal
  • ashqal
  • 2014-01-02 15:14
  • 5175

for(;;)和while(true)的区别

一直知道for(;;)和while(true)都是无限循环,今天搜了下原理 while VS. for    在编程中,我们常常需要用到无限循环,常用的两种方法是while (1) 和 for (;;)。这两种方法效果完全一样,但那一种更好呢?让我们看看它们编译后的代码:  ...
  • CNHK1225
  • CNHK1225
  • 2016-11-04 12:55
  • 395

1.for(;;) 与 while(true) 的 区别

1.for(;;) 与 while(true) 的 区别
  • baidu_29029173
  • baidu_29029173
  • 2016-04-17 22:13
  • 2693

c++中关于while(true)的运用和switch,case的应用

例:读入键盘输入的数,对其求和,当输入0时表示输入结束 Void main() {   int num=0,n;//使用while(true)为永久循环(也就是循环条件永远为true)读入数 while(true ) { cout cin>>n; i...
  • gwt_fighter
  • gwt_fighter
  • 2015-09-28 20:52
  • 525

for(;;) 和 while(true) 的区别

while(true) 和 for(;;) 到底区别在哪?其实他们真正的区别其实在于...
  • sinat_34344123
  • sinat_34344123
  • 2018-01-13 09:50
  • 47

for 和 while的区别

下列关于for循环和while循环的说法中哪个是正确的?( )   A.while循环能实现的操作,for循环也都能实现     B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果     C.两种循环任何时候都可替换   ...
  • lyl494223339
  • lyl494223339
  • 2012-08-25 13:34
  • 8262

python的while和for循环

while语句,提供了编写通用循环的一种方法,而for语句是用来遍历序列对象内的元素,并对每个元素运行一个代码块。break,continue用在循环内,跳出整个循环或者跳出一次循环。 一、while循环 1、一般格式 格式:首行以及测试表达式,有一列或多列缩进语句的主体以及一个选用的else部分(...
  • u010229420
  • u010229420
  • 2015-02-22 11:31
  • 3539

Python天坑系列(一):while 1比while True更快?

 0. 前言 前些天被Python的多线程坑了一把,因此产生了写一个《Python天坑系列》博客的想法,说说我碰到的那些Python的坑。 而天坑这个词呢,一方面指Python的坑,另一方面也说明本系列文章也是个坑,对于会写什么内容、有多少篇、多久更新一次、什么时间更新我都无法确定,哈哈(...
  • yongche_shi
  • yongche_shi
  • 2015-04-20 16:25
  • 5520

关于for(;;)和while(1)/while(true)区别

网传前者效率稍高,至少从汇编级看如此。但从我的编译器看二者是一样的,所以这个东西应该是与编译器高度相关的,保守点讲前者至少不会差于后者。 试验如下: g++版本4.8.2,c++代码如下: 对应汇编代码如下: 3级优化后的汇编代码: 可以看到,二者其实是一样的。 其他编译器没...
  • u012369789
  • u012369789
  • 2015-12-23 14:09
  • 688

while(1) 与for(;;) 的区别

在编程中,我们常常需要用到无限循环,常用的两种方法是while (1) 和 for (;;)。这两种方法效果完全一样,但那一种更好呢?然我们看看它们编译后的代码: 编译前: while (1); 编译后: mov eax,1 test eax,eax je foo+23h jmp fo...
  • nh5431313
  • nh5431313
  • 2017-03-30 08:41
  • 1325
    个人资料
    • 访问:1656次
    • 积分:241
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:2篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论