Javaの無限ループの規則は何ですか? または書くべきですwhile(true)
かfor(;;)
?while(true)
while ループの使用頻度が低いため、個人的に使用します。
質問する
88441 次
5 に答える
83
while(true)
と の間にバイトコードの違いはありませんが、(特に Java の初心者にとっては) 混乱が少ないためfor(;;)
、私は好みます。while(true)
このコード例で確認できます
void test1(){
for (;;){
System.out.println("hello");
}
}
void test2(){
while(true){
System.out.println("world");
}
}
コマンドを使用すると、次のjavap -c ClassWithThoseMethods
ようになります
void test1();
Code:
0: getstatic #15 // Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #21 // String hello
5: invokevirtual #23 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: goto 0
void test2();
Code:
0: getstatic #15 // Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #31 // String world
5: invokevirtual #23 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: goto 0
同じ構造を示しています(「hello」と「world」の文字列を除く)。
于 2013-04-13T15:48:25.757 に答える
15
while(true)
for ループよりも while ループを使用する頻度が低いため、私はを好みます。for ループはより適切に使用でき、while(true)
よりクリーンで読みやすいです。for(;;)
于 2013-04-13T15:46:58.907 に答える
9
それはあなた次第です。私はそのようなことのための慣習があるとは思わない。while(true)
またはのいずれかを使用できますfor(;;)
while(true)
ソースコードでより頻繁に遭遇すると思います。for(;;)
使用頻度が低く、読みにくい。
于 2013-04-13T15:47:12.353 に答える
6
for(;;)
ひどい、新人にとって読むのは完全に直感的ではありません。while(true)
代わりに使用してください。
于 2013-04-13T15:50:55.080 に答える