Düşünme şeklimde, bilinen veya belirlenebilir bir aralıkta yineleme yapmak için bir for döngüsü kullanılır.
String[] names = //something;
for ( int i = 0; i < names.length; i++ ) { //do stuff }
(i bir kenara dahil) ile eşdeğerdir:
String[] names = //something;
int i = 0;
while (i < names.length )
{
// do stuff
i++;
}
Başka bir deyişle, for
döngü yaygın olarak kullanılan bir while
yapı için basitçe (oldukça yararlı) bir sözdizimsel şekerdir .
Ancak, for(;;)
web üzerinde işlevsel olarak eşdeğer olan birçok yapı görüyorumwhile(true)
Bunun sebebi nedir? Neden sonsuz for döngüsü sonsuz sonsuz döngüsü yerine tercih edilir?
// Döngülerken hiç kullanmayan bir java ders kitabı bile gördüm! Böyle korkunç yapılara liderlik etmek:
String input = getInput();
for( ; !inputIsValid(input) ; )
{
//redo;
}
while
ve for
burada ve soru değişmezdi. while(true)
ve for(;;)
aynı şey demek. Açıkçası güçlü bir tercihiniz var while
, diğerlerinin de eşit derecede güçlü bir tercihi olabilir for
. Birinin diğerinden daha doğru olduğunu söylemek imkansız.
for(;;)
kafa karıştırıcı bulamıyorum . Bu standart bir C deyim, K&R (2e) bölüm 3.5'te belgeleyeceğiniz bir deyimdir. Anlıyorum seni öyle değil; Eğer diğerleri açıkçası (başka bunu görmek asla) tercih olduğunu anlamalıdır. C dışındaki dillerde az çok kabul edilebilir; sadece kesin bir cevap olasılığını azaltan bu dil bilincini etiketlediniz . Yine kapanmaya oy verdim çünkü Q yapıcı değil; Eğer rahatsız olsaydım, kapanmak yerine ya da kapatmaya ek olarak saldırgan olarak işaretlenirdim. Hepsi bu.
wheeeeeeee { ... }