减少条件理解

时间:2014-01-23 12:40:20

标签: java

请比较两个代码段:

非工作代码:

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

工作代码:

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

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

1 个答案:

答案 0 :(得分:6)

条件的两个备选方案必须返回一个值,它必须是相同的类型,它将成为整个表达式的值。 System.out.println()void

在第二种情况下,两个备选方案是int s(有效),表达式的类型是int

并且,感谢Marko Topolnik的评论:条件不是if..then..else的简写;它是一种表达,因此它不能占据陈述的位置。