Каково соглашение для бесконечного цикла в Java? Должен ли я писать while(true)
или for(;;)
? Лично я бы использовал while(true)
, потому что реже использую циклы while.
Java: соглашение о бесконечном цикле
Ответы (5)
Нет никакой разницы в байт-коде между 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
который показывает ту же структуру (за исключением строк «hello» и «world»).
do {}
без необходимости while
или просто loop {}
.
- person Oliver Hausler; 04.11.2015
forever
, например, в Scratch wiki.scratch.mit.edu/wiki/Forever_%28block%29< /а>
- person Frank Schmitt; 28.04.2016
Я предпочитаю while(true)
, потому что циклы while использую реже, чем циклы for. Циклы for имеют лучшее применение, а while(true)
намного чище и легче читается, чем for(;;)
for(;;)
приятнее играть в гольф
- person John Dvorak; 13.04.2013
for
! Просто вставьте его, как for(; condition(););
. Использование for
также означает, что вы можете легко добавить переменную для подсчета итераций цикла (или других вещей «между итерациями») после второй из двух точек с запятой.
- person AJMansfield; 12.11.2013
for...
, это слово из трех букв.
- person ChiefTwoPencils; 20.10.2014
Тебе решать. Я не думаю, что существует соглашение для таких вещей. Вы можете использовать while(true)
или for(;;)
Я бы сказал, что чаще всего встречаю while(true)
в исходниках. for(;;)
используется реже и его труднее читать.
for...
, это слово из трех букв.
- person ChiefTwoPencils; 20.10.2014
for(;;)
отстой, новичкам читать совершенно неинтуитивно. Пожалуйста, используйте while(true)
вместо этого.
while(running)
, так что у меня есть выход. - person NilsH   schedule 13.04.2013