任何人都可以帮我解释为什么以下代码片段的输出是X88?

时间:2011-07-14 03:48:29

标签: java

有人可以向我解释下面的代码段吗?

 class G{
      public static void main(String [] args)
        {
               char x='X';
               int i=0; 
              System.out.print(true ? x : 0);
              System.out.print(false ? i: x);

     }
    }

2 个答案:

答案 0 :(得分:3)

在第二个声明false ? i: x上,您正在比较不同的类型。

int : char将字符'X'打印为int。而X的ASCII码是88`。

答案 1 :(得分:2)

您的x会自动从char转换为int。请尝试以下代码并打印88。

System.out.println((int)'X');