私は数年前からJavaでプログラミングをしてきましたが、最近、正式な学位を取得するために学校に戻りました。前回の割り当てで、以下のようなループを使用することでポイントを失ったことを知って、私は非常に驚きました。
do{
//get some input.
//if the input meets my conditions, break;
//Otherwise ask again.
} while(true)
ここでのテストでは、コンソール入力をスキャンしているだけですが、この種のループはbreak
と似ているためgoto
、使用しないことをお勧めします。
goto
とそのJavaのいとこの落とし穴を完全に理解しbreak:label
ているので、それらを使用しないのは良識があります。より完全なプログラムは、たとえばプログラムを単に終了するなど、他のいくつかの回避手段を提供することにも気づきましたが、それは私の教授が引用した理由ではなかったので...
何が問題になっていdo-while(true)
ますか?
break
はおそらく意味がありますが、実際には誤解されています。おそらくあなたはこれについてあなたの教授を教育することができます;)私の経験では、教授はプログラミングの技術についてあまり知りません。
do {} while (true)
は同等でwhile(true) {}
あり、後者ははるかに従来の形式であり、はるかに明確です。
break
、それがない言語でプログラミングしてみてください。あなたがそれを望む前に、それはあまり多くのループを必要としません!