本帖最后由 西门吹风 于 2014-5-30 16:46 编辑
如下代码,用注释中的if else 执行可以正确打印 C 3,
使用 System.out.println(y>9?(char)(y-10+'A'):y);打印 67 3,
但使用 System.out.println(y>9?(char)(y-10+'A'):y);时,第一次循环y=12,y>9为真,
返回(char)(y-10+'A'),也就是C,但打印的是67,
为什么没有执行强制转换???
- class JingZhi
- {
- public static void main(String[] args)
- {
- int x=60,y;
- for(int i=x ;(x&15)!=0;x=x>>>4)
- {
- y=x&15;
- System.out.println(y>9?(char)(y-10+'A'):y);
- /*
- if(y>9)
- {
- System.out.println((char)(y-10+'A'));
- }
- else
- {
- System.out.println(y);
- }
- */
- }
- }
- }
- <p> </p>
复制代码
|