2016-02-04 11 views
6

Istnieje wiele opcji dostępnych dla nieskończonej pętli, ale to są najczęściej korzystają while(true) or for(;;)Java: nieskończonej pętli

wiem while(true) jest najlepszym rozwiązaniem, ponieważ jest to łatwiejsze do zrozumienia.

Ale chcę użyć for(;;).

Chcę wiedzieć, co się dzieje wewnątrz for loop, kiedy użyłem dwóch ; w pętli for.

for(;;)

średnik oznacza jego pusty oświadczenie. Ale jak to działa, gdy używamy wewnątrz for loop do nieskończonej realizacji?

+2

Nie znam odpowiedzi na to pytanie. Ale wiem, jak na nie odpowiedzieć. Chciałbym skompilować prosty program java za pomocą konstruktu, a następnie zbadać go za pomocą dekompilatora takiego jak javap. Nie byłbym zaskoczony, gdyby 'while (true)' oraz 'for (;;)' wygenerowały ten sam kod bajtu. Ja też nie byłbym zaskoczony, gdyby się różniły. – emory

+0

@Shiladittya, rozważ zaakceptowanie mojej odpowiedzi, jeśli rozwiąże ona Twoje pytanie. Jeśli nie, z przyjemnością omówię dalej – Idos

Odpowiedz

3

To co się dzieje:

for (initialization statement; condition check; increment/decrement) 
    // loop body; 

Z for(;;):

  • Nie ma inicjalizacji.
  • Nie ma sprawdzenia stanu.
  • Nie ma żadnej inkrementacji/dekrementacji.

Dlatego będzie działać wiecznie, dokładnie tak jak while(true).

Powiązane problemy