请教一道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);
}
}

为什么结果出来是“你爱她”?谁能详细说明下。

首先,你给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