Java: 无限循环约定 [已关闭]

2022-09-01 00:46:01

Java中无限循环的约定是什么?我应该写还是?我个人会使用,因为我使用 while 循环的频率较低。while(true)for(;;)while(true)


答案 1

和 之间的字节码没有区别,但我更喜欢,因为它不那么令人困惑(特别是对于Java新手)。while(true)for(;;)while(true)

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

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

它显示相同的结构(除了“hello”与“world”字符串)。


答案 2

我更喜欢 ,因为我使用 while 循环的频率低于 for 循环。For 循环具有更好的用途,并且比while(true)while(true)for(;;)