簡體   English   中英

如何在Java中將false視為真等

[英]How it is possible in Java for false to equal true

在這個程序中,false如何等於true:

public class Wow {
    public static void main(String[] args) {
        if ( false == true ){ // \u000a\u007d\u007b
            System.out.println("How is it possible!!!");
        }
    }
}

好吧,我會慷慨地認為這個問題是出於無罪而被問到的。

Java編譯器在此過程的早期解析Unicode轉義序列。 特別是,它在剝離注釋或檢查語法之前執行此操作。 由於\ \}是換行符, \}是字符“}”而\{是字符“{”,解析器實際上正在解析此程序:

public class Wow{
    public static void main(String[] args) {
        if ( false == true ){ // 
}{
            System.out.println("How is it possible!!!");
        }
    }
}

該程序將始終打印“不可能”的輸出。

我只是試驗這個問題,(也回答),並發現了有趣的行為

public class TestUniCode {

    public static void main(String[] args) {
        System.out.println(" Printing first line");
        // \u000a\u007d\u007b
        System.out.println(" Printing second line");
    }
}

而且非常令人驚訝(對我而言)它只打印Printing first line ,而忽略了第二行

編輯 - 我明白了,它在第一行之后關閉主要方法,第二行將作為單獨的塊在main之外

暫無
暫無

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

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