Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 减少条件理解_Java - Fatal编程技术网

Java 减少条件理解

Java 减少条件理解,java,Java,请比较两个代码段: 非工作代码: (1>2)? System.out.println(1):System.out.println(2); System.out.println((1>2)?1:2); 工作代码: (1>2)? System.out.println(1):System.out.println(2); System.out.println((1>2)?1:2); 为什么第一个变量不起作用?条件的两个备选值必须返回一个值,并且必须是相同的类型,这将成

请比较两个代码段:

非工作代码:

(1>2)? System.out.println(1):System.out.println(2);
 System.out.println((1>2)?1:2);
工作代码:

(1>2)? System.out.println(1):System.out.println(2);
 System.out.println((1>2)?1:2);

为什么第一个变量不起作用?

条件的两个备选值必须返回一个值,并且必须是相同的类型,这将成为整个表达式的值。System.out.println无效

在第二种情况下,这两个选项是int有效的,并且表达式的类型是int

感谢Marko Topolnik的评论:条件不是if..then..else的简写;它是一个表达式,因此它不能占据语句的位置。

条件的两个可选项必须返回一个值,并且它必须是相同的类型,这将成为整个表达式的值-尤其是整个表达式的完全未清除值