问题1.这句话,希望他能够输出的是 : I want to get a char:D ,但是实际输出的是:I want to get a char: 68
已经做了 “强制类型转换” ,为何输出的不是D而是68呢?
问题2.三元运算符要求,前后语句的返回类型一致吗?
程序能够正常输入 : I want to get a char: D 的是自己做了修改的。作者: 胡发友 时间: 2013-2-6 14:19
是的,三元运算,在运算时会判断冒号两边的类型是否相同,如果不同,那么他会自动帮你提升类型,所以
你的第一个问题的,打印的是68,而不是D
如果你要输出D,应将冒号后面的number做char类型的强制转换;就可以输出D了
代码如下:
public class OperateTest {
public static void main(String[] args) {
int number = 13;
char ch1 = 'A', ch2='E';
System.out.print("I want to get a char: ");
System.out.println(number>10?(char)(number-10+'A'):(char)number);
System.out.print("I want to get a char: ");
System.out.println((char)(number>10?(number-10+'A'):number));
System.out.print("I want to get a char: ");
System.out.println(ch1<ch2?(int)(ch1+'A'):ch2);
System.out.print("I want to get a char: ");
System.out.println(number>10?(char)(number-10+'A'):(char)number);
}
}作者: 打工人 时间: 2013-2-6 15:03
给你看篇文章 ,尤其是本文中的下文总结 http://blog.csdn.net/fhx19900918/article/details/8047549作者: liye20110 时间: 2013-6-22 10:47
说的很详细,推荐的博客值得赞!作者: python 时间: 2013-7-10 00:47
不错。代码量很足