如果您問是否可以使用無限循環,答案是肯定的。有很多情況下你想要永遠運行的東西,儘管循環通常會在某個時候終止。
至於你的問題:「Java可以識別循環將無限?」答案是,計算機不可能有算法來確定程序是否會永久運行。閱讀關於:Halting Problem
讀了一會兒,你的問題也在問爲什麼doSomething()函數不會抱怨它沒有返回一個int。
有趣的是下面的代碼不會編譯。
public class test {
public static int doSomething() {
//while(true);
boolean test=true;
while(test){
}
}
public static void main(String[] args) {
doSomething();
}
}
這表明,我認爲,作爲停機問題的維基頁面提示,它是不可能有作爲一個算法,以確定是否所有的問題將終止,但這並不意味着有人不加簡單情況下:
while(true);
java規範。我上面的例子稍微複雜一點,所以Java不能將它記爲無限循環。真的,這是一個奇怪的邊緣情況,但它只是爲了編譯。也許有人會嘗試其他組合。
編輯:不是無法訪問的代碼的問題。
import java.util.*;
public class test {
public static int doSomething() {
//while(true);
while(true){
System.out.println("Hello");
}
}
public static void main(String[] args) {
doSomething();
}
}
上面的作品,所以while(true);不會被編譯器視爲無法訪問,否則會引發編譯時錯誤!
難道你需要一個'返回0;'(或同等學歷)後',而(真);',只是爲了使編譯器幸福嗎?我知道我有Java抱怨方法不會返回正確的類型。這就是說,我完全可以看到這是一個編譯程序。 – 2009-12-24 14:49:55
非常有趣...我很驚訝它實際編譯。 – cjstehno 2009-12-24 14:52:12