Java中無限循環的約定是什麼?我應該寫while(true)
還是for(;;)
?我個人會使用while(true)
,因爲我經常使用while循環。Java:無限循環公約
回答
while(true)
和for(;;)
之間的字節碼沒有差別,但我更喜歡while(true)
,因爲它不那麼容易混淆(特別是對於新來的Java人)。
您可以使用此代碼示例
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
這表明相同的結構(除了「你好」與「世界」的字符串)。
+1:用於解釋 – Aubin
+1用於區分「簡單」閱讀和*理解*。其他答案都沒有成功。 – ChiefTwoPencils
我認爲現在是時候讓Java想出一個無限循環結構,所以我們不需要像其他語言一樣的解決方法。我可以建議'do {}'不需要'while',或者簡單地'loop {}'。 –
我更喜歡while(true)
,因爲我使用while循環的次數少於循環次數。 For循環有更好的用途,並且while(true)
比for(;;)
更清潔易讀
另一個支持while(true)的論點是可維護性:真實可能會成爲未來的邏輯條件 – Aubin
@Aubin OTOH,因爲(;;)'在打高爾夫球時更加愉快 –
@Aubin, for'!只需將其粘貼在「for(; condition(););'中即可。使用'for'也意味着你可以很容易地添加一個變量來計算循環的迭代次數(或者其他'迭代次數'),在兩個semicola的第二個之後。 – AJMansfield
這取決於你。我認爲這樣的事情沒有約定。你可以使用while(true)
或for(;;)
我會說我經常遇到while(true)
在源代碼。 for(;;)
不太經常使用且難以閱讀。
支持while(true)的另一個論點是可維護性:真實可能會成爲未來的邏輯條件 – Aubin
沒有什麼「難於閱讀」關於......的三字母詞。 – ChiefTwoPencils
最終,它是您的選擇。以下Java參考使用for (;;)
格式:The for Statement。
但是,在我的經驗中,while(true)
更常用於無限循環。
for(;;)
糟透了,對於新手來說是完全不直觀的。請改用while(true)
。
- 1. 無限循環Java
- 2. 無限循環java
- 3. Java無限循環
- 4. While循環內無限循環Java Selenium
- 5. 無限循環。 Java BigInteger
- 6. 陷入無限循環? (Java)
- 7. Java - 終止無限循環
- 8. Java JFileChooser無限循環
- 9. Java打破無限循環
- 10. Java中的無限循環
- 11. Java:線程無限循環
- 12. Java Filter無限循環
- 13. Java的無限While循環
- 14. 無限循環在Java中
- 15. Java HashMap.get(Object)無限循環
- 16. Angular2公測7無限循環
- 17. JAVA循環公式
- 18. 無限循環?
- 19. 無限循環:
- 20. 無限循環
- 21. 無限循環
- 22. 無限循環
- 23. 無限循環
- 24. 無限循環
- 25. 無限循環
- 26. (?無限)循環
- 27. 無限循環?
- 28. 無限循環...?
- 29. 無限循環
- 30. 無限循環
我寧願做'while(running)',所以我有辦法擺脫它。 – NilsH
'break'可以離開。 (;;)不太好, – Justin
。雖然(運行)是_LOT_更具可讀性 – radai