簡體   English   中英

java final 關鍵字導致錯誤:無法訪問語句。 為什么它不打印你好世界

[英]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是所謂的常量表達式,因為abfinal的並分配了文字值(如果它已分配給另一個常量表達式,則同樣適用)。 Java 編譯器在編譯期間評估這些常量表達式。 因為它的計算結果為false ,它決定永遠不會執行while循環,因此循環的內容是一個“不可達語句”,編譯失敗並報錯。

它從不打印“Hello World”,因為編譯失敗,所以代碼永遠不會運行。 打印發生在運行時,而不是編譯時。

因為你使ab最終化,所以 java 編譯器會看到:

while(a > b)

永遠不會是真的。 因為它在運行程序之前就知道,它不會讓您保留該代碼。 也就是說,您已經刪除了 while,或者刪除了變量ab之前的單詞final

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM