[英]java final keyword causes error: unreachable statement. why is it not printing hello world
error: unreachable statement
為什么它不打印你好世界?
public class Main
{
public static void main(String[] args) {
final int a=10,b=20;
while(a>b){
System.out.print("Message");
}
System.out.println("Hello World");
}
}
您代碼中的a>b
是所謂的常量表達式,因為a
和b
是final
的並分配了文字值(如果它已分配給另一個常量表達式,則同樣適用)。 Java 編譯器在編譯期間評估這些常量表達式。 因為它的計算結果為false
,它決定永遠不會執行while
循環,因此循環的內容是一個“不可達語句”,編譯失敗並報錯。
它從不打印“Hello World”,因為編譯失敗,所以代碼永遠不會運行。 打印發生在運行時,而不是編譯時。
因為你使a
和b
最終化,所以 java 編譯器會看到:
while(a > b)
永遠不會是真的。 因為它在運行程序之前就知道,它不會讓您保留該代碼。 也就是說,您已經刪除了 while,或者刪除了變量a
和b
之前的單詞final
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.