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 に答える