标题: 关于三元运算符的问题 [打印本页] 作者: why910107 时间: 2016-6-6 22:59 标题: 关于三元运算符的问题 class H {
public static void main(String [] args){
int a=1,b=2;
int c = (a+b>3?a++:++b);
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
a,b,c的结果是什么???? 为什么???作者: a2068604 时间: 2016-6-7 00:10
a=1 b=3 c=3 a=1没什么疑问,因为int c 运算a没有自增,b=3是因为 int c运算不满足a+b>3?,所以取值++b,也正是因为++b自增了一次,所以B等于3,既然b=3了 必然赋值给了c所以c=3。但是假设是b++ 那么答案是c=2 b=3,作者: a2068604 时间: 2016-6-7 00:13
因为b++是先赋值再自增一次,而++b是先自增在赋值给C。
你的疑问应该是为什么int a =1; int b = 2,为什么打印出来 b的结果不同?
就是因为自增 b++和++b运算造成的,因为你的变量定义在主函数会记录他的自增作者: ancheng 时间: 2016-6-7 00:22