什么是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]