Menurut cara berpikir saya, for for loop digunakan untuk beralih pada rentang yang diketahui atau ditentukan.
String[] names = //something;
for ( int i = 0; i < names.length; i++ ) { //do stuff }
yang setara (pelingkupan i samping) untuk:
String[] names = //something;
int i = 0;
while (i < names.length )
{
// do stuff
i++;
}
Dengan kata lain, for
loop hanyalah gula sintaksis (sangat berguna) untuk while
konstruksi yang umum digunakan .
Namun, saya melihat banyak for(;;)
konstruksi di web yang secara fungsional setara denganwhile(true)
Apa alasannya? Mengapa infinite for loop lebih disukai daripada loop infinite while?
// Aku bahkan melihat buku teks java yang tidak digunakan saat loop sama sekali! Menuju ke konstruksi mengerikan seperti:
String input = getInput();
for( ; !inputIsValid(input) ; )
{
//redo;
}
while
dan di for
sini dan pertanyaannya tidak akan berubah. while(true)
dan for(;;)
berarti hal yang sama. Anda jelas memiliki preferensi yang kuat untuk while
, orang lain mungkin memiliki preferensi yang sama kuatnya untuk for
. Tidak mungkin mengatakan bahwa yang satu lebih benar daripada yang lain.
for(;;)
membingungkan sama sekali. Ini adalah idiom C standar, yang akan Anda dokumentasikan di bagian 3.5 dari K&R (2e). Saya mengerti bahwa Anda tidak menyukainya; Anda harus memahami bahwa orang lain jelas menyukainya (jika tidak, Anda tidak akan pernah melihatnya). Mungkin lebih atau kurang dapat diterima dalam bahasa selain C; Anda telah menandai agnostik bahasa ini yang hanya mengurangi kemungkinan jawaban definitif. Sekali lagi, saya memilih untuk menutup karena Q tidak konstruktif; jika saya tersinggung saya akan ditandai sebagai ofensif alih-alih atau sebagai tambahan untuk menutup. Itu semuanya.
wheeeeeeee { ... }