Quelle est la convention pour une boucle infinie en Java? Devrais-je écrire while(true)
ou for(;;)
? Personnellement, j'utiliserais while(true)
parce que j'utilisais boucles moins souvent.
Il n'y a pas de différence dans le bytecode entre while(true)
et for(;;)
mais je préfère while(true)
car c'est moins déroutant (surtout pour les débutants en Java).
Vous pouvez le vérifier avec cet exemple de code
void test1(){
for (;;){
System.out.println("hello");
}
}
void test2(){
while(true){
System.out.println("world");
}
}
Lorsque vous utilisez la commande javap -c ClassWithThoseMethods
tu auras
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
qui montre la même structure (sauf les chaînes "hello" vs "world").
Je préfère while(true)
, car j'utilise moins souvent les boucles while que les boucles for. Les boucles ont de meilleures utilisations et while(true)
est beaucoup plus propre et facile à lire que for(;;)
C'est à vous. Je ne pense pas qu'il existe une convention pour une telle chose. Vous pouvez soit utiliser while(true)
ou for(;;)
Je dirais que je rencontre plus souvent while(true)
dans les codes sources. for(;;)
est moins utilisé et plus difficile à lire.
En fin de compte, c'est votre choix. La référence Java) suivante utilise le format for (;;)
: The for Statement .
Cependant, while(true)
est utilisé plus souvent en boucles infinies dans mon expérience.
for(;;)
est nul, il est totalement inintéressant de lire pour les débutants. Veuillez utiliser while(true)
à la place.