请教一道java基础题
来源:百度知道 编辑:UC知道 时间:2024/06/01 08:15:37
public class E
{ public static void main (String args[])
{ char x='你',y='e',z='吃';
if(x>'A')
{ y='爱';
z='情';
}
else
y='我';
z='她';
System.out.println(" "+x+y+z);
}
}
为什么结果出来是“你爱她”?谁能详细说明下。
{ public static void main (String args[])
{ char x='你',y='e',z='吃';
if(x>'A')
{ y='爱';
z='情';
}
else
y='我';
z='她';
System.out.println(" "+x+y+z);
}
}
为什么结果出来是“你爱她”?谁能详细说明下。
首先,你给x赋值“你”,然后判断,因为x>"A",所以y='爱';z='情'; ,而你在else时没加大括号,没加则默认隐响else下的第一条语句,所以,这时z='她'; 所以你结果出来是“你爱她”。。。
看见你的else后面没加括号。
if(x>'A')
{ y='爱';
z='情';
}
通过上面这个以后,y='爱',z='情',没啥说的。
else
y='我'; 这2句不执行。
z='她';
最后又执行了这句,所以这时z='她'。
问题出在你的else后没加括号,相当于else{y='我';},
而不是else{y='我';z='她';}
因为 x>'A';所有if 后 y='爱'; z='情';
然后执行z='她'(因为你的else后没有大括号,所以只有一条语句) ;这个时候x='你',y='爱',z='她';
首先 不管怎么样 最后会打印的是 x y z 的字符!
所以一定是执行了这三个语句 x = ‘你’; y = ‘爱’; z = ‘她’;
也就是说条件判断(x>'A')==true ; 至于这个比较怎么成立的,我就不知道了,那得问ACSLL码!
public class E
{ public static void main (String args[])
{ char x='你',y='e',z='吃';
if(x>'A') //你字符的ascii编码是等于20320 A字符的ascii