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, forloop hanyalah gula sintaksis (sangat berguna) untuk whilekonstruksi 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;
}
whiledan di forsini 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 { ... }