3

今どこにいるのか忘れてしまいましたが、どこかで読んだfor(;;){...}のと同じwhile(1){...}です。この回答は、これが真実であることを確認し、なぜfor(;;)まったく機能するのかを説明しています。ただし、なぜそれが役立つのかについては詳しく説明されておらず、forループではなく空のループのベンチマークを見つけることができないようですwhile

それはかなり紛らわしいですが(確かにかなり賢いですが)、それより短いです。GoogleのClosureCompilerwhile(true)は空のforループに変換されるため、理由があるはずです。

tl; dr:ループ上で空のforループを使用する必要があるのはなぜwhile(1)ですか?

4

2 に答える 2

7

入力する方が短いです。それが本当に唯一の理由です。多くの人がそのようにプログラミングをして育ちましたが、それは習慣の問題です。

より速い時間と言語があったことをぼんやりと覚えていfor(;;)ます。しかし、これは過去の大まかなものであり、現在では、半ばまともな最適化コンパイラ/インタプリタがあります。

于 2012-06-01T02:51:02.773 に答える
3

おそらく入力が短く、コードの可読性よりも重要な時代があったため、少し慣用的です。私はソフトウェアエンジニアリングの本を読んだことがありますが、それfor(;;)は「無限ループ」を意味するように飛び出しwhile(1)ます。しかし、それは決して強力な慣習ではなく、私が考えることができるあらゆる面で技術的に同等です。

于 2012-06-01T02:59:47.340 に答える