java vs c中的三元运算符
为什么这个三元运算符不能在这里工作,但是在c中它的工作原理是什么?java vs c中的三元运算符
import java.util.Scanner;
class Pack {
public static void main(String[] args) {
System.out.println("enter a number");
Scanner s=new Scanner(System.in);
int i=s.nextInt();
i%2==0?System.out.println("even"):System.out.println("odd");
}
}
因为您不能在Java中分配类似的语句。如果你用它喜欢你的三元会的工作,
System.out.println(i%2==0 ? "even" : "odd");
从根本上说,Java是不是C.
编辑
您在评论中问,我在哪里分配什么?
引述Equality, Relational, and Conditional Operators (The Java Tutorials),
另一个条件运算符是
?:
,它可以被看作是速记的if-then-else语句(在本节课的流程控制语句中讨论)。此运算符也称为三元运算符,因为它使用三个操作数。在以下示例中,应将此运算符理解为:“如果someCondition
为true
,则将值value1
指定为result
,否则将值value2
指定为result
。
此外,Chapter 15. Expressions - Conditional Operator ? :
(JLS-15.25)说
它是第二或第三操作数表达是一个
void
方法的调用一个编译时间错误。
我没有得到你,我在哪里分配任何东西? – curositykiller 2014-11-03 06:21:42
@curositykiller编辑。重点补充。 – 2014-11-03 06:24:54
15.25节也许会引起人们的兴趣:“第二个或第三个操作数表达式是一个void方法的调用,这是一个编译时错误。” – awksp 2014-11-03 06:27:31
它因为'System.out.println()'返回'无效'在哪里作为表达期待一些价值。 – Rustam 2014-11-03 06:18:21