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的简写;它是一个表达式,因此它不能占据语句的位置。条件的两个可选项必须返回一个值,并且它必须是相同的类型,这将成为整个表达式的值-尤其是整个表达式的完全未清除值