Java: Convención Infinite Loop

¿Cuál es la convención para un ciclo infinito en Java? ¿Debo escribir while(true) o for(;;) ? Yo personalmente usaría while(true) porque uso while loops con menos frecuencia.

No hay diferencia en bytecode entre while(true) y for(;;) pero prefiero while(true) ya que es menos confuso (especialmente para alguien nuevo en Java).

Puede verificarlo con este ejemplo de código

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

Cuando use el comando javap -c ClassWithThoseMethods obtendrá

  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 

que muestra la misma estructura (excepto “hello” vs cadenas “mundiales”).

Prefiero while(true) , porque utilizo bucles while con menos frecuencia que para bucles. Para bucles tienen mejores usos y while(true) es mucho más limpio y fácil de leer que for(;;)

Tu decides. No creo que haya una convención para tal cosa. Puede usar while(true) o for(;;)

Yo diría que me encuentro con más frecuencia while(true) en los códigos fuente. for(;;) se utiliza con menos frecuencia y es más difícil de leer.

En definitiva, es tu elección. La siguiente referencia de Java usa el formato for (;;) : The for Statement .

Sin embargo, while(true) se usa más a menudo en bucles infinitos en mi experiencia.

for(;;) es una mierda, es completamente poco intuitivo leer para novatos. Por favor use while(true) lugar.