Birkaç yıldır Java'da program yapıyorum, ancak yakın zamanda resmi bir derece almak için okula döndüm. Son görevimde aşağıdaki gibi bir döngü kullandığım için puan kaybettiğimi öğrenmek beni oldukça şaşırttı.
do{
//get some input.
//if the input meets my conditions, break;
//Otherwise ask again.
} while(true)
Şimdi testim için sadece bazı konsol girişleri için tarama yapıyorum, ancak bu tür bir döngünün cesaretinin kırıldığı söylendi, çünkü break
kullanım benzer goto
, sadece yapmıyoruz.
goto
Java kuzeninin tuzaklarını ve tam anlamıyla anlıyorum ve break:label
onları kullanmamanın iyi bir anlamı var. Ayrıca, daha eksiksiz bir programın, örneğin programı sonlandırmak için başka bir kaçış yolu sağlayacağını da fark ettim, ancak bu, profesörümün belirttiği bir sebep değildi, bu yüzden ...
Sorun nedir do-while(true)
?
break
muhtemelen iyi anlamlıdır, ancak aslında yanlış anlaşılmıştır. Belki de profesörünüzü bu konuda eğitebilirsiniz;) Deneyimlerime göre profesörler programlama zanaat hakkında çok fazla şey bilmiyorlar.
do {} while (true)
eşdeğer while(true) {}
ve ikincisi aslında daha geleneksel form ve çok daha net.
break
, onsuz bir dilde programlamayı denemelidir. Siz istemeden çok fazla döngü gerektirmez!