Каква е конвенцията за безкраен цикъл в 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