Java的:无限循环公约[关闭](Java: Infinite Loop Convention [c

2019-08-22 18:49发布

什么是Java中的无限循环的约定? 我应该写while(true)for(;;) 我个人使用while(true) ,因为我不经常使用while循环。

Answer 1:

有之间的字节码没有差别while(true) ,并for(;;)但我更喜欢while(true) ,因为它是减少混乱(特别是对于一个新到Java)。

您可以使用此代码示例检查

void test1(){
    for (;;){
        System.out.println("hello");
    }
}
void test2(){
    while(true){
        System.out.println("world");
    }
}

当您使用命令javap -c ClassWithThoseMethods你会得到

  void test1();
    Code:
       0: getstatic     #15                 // Field java/lang/System.out:Ljava/io/PrintStream;
       3: ldc           #21                 // String hello
       5: invokevirtual #23                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
       8: goto          0

  void test2();
    Code:
       0: getstatic     #15                 // Field java/lang/System.out:Ljava/io/PrintStream;
       3: ldc           #31                 // String world
       5: invokevirtual #23                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
       8: goto          0

这表明相同的结构(除了“你好”与“世界”的字符串)。



Answer 2:

我更喜欢while(true) ,因为我用while循环通常小于循环。 For循环有更好的用途, while(true)是更清洁,方便,而不是读for(;;)



Answer 3:

由你决定。 我不认为有这样的事情的约定。 您可以使用while(true)for(;;)

我会说我更经常遇到while(true)的源代码。 for(;;)不太经常使用,并且难以阅读。



Answer 4:

归根结底,这是你的选择。 下面的Java参考使用for (;;)格式: for语句 。

然而, while(true)更经常使用在我的经验,无限循环。



Answer 5:

for(;;)吸收,它是完全不直观读新秀。 请使用while(true)来代替。



文章来源: Java: Infinite Loop Convention [closed]