3.如下代码
char c='X';
int i=0;
System.out.println(true?c:97);
System.out.println(false?i:c);
运行的结果不一样,为X ,88;据同学说是因为第一次不知道‘X’的类型,所以默认原样输出,而第二次因为i是INT类型,所以C强制类型转化为ASIC码。netbeans验证,第2个输出语句变为(false?c:c);则输出变为X,X;推测为:此3目运算符运行时将参照第一个运算符的类型(按物理顺序),做主要类型,为后面的类型做强制类型转换。
4.班门弄斧下
最近在做C#程序设计,老掉牙的题目,“xx管理系统”,被组长分配了一个判断天数差的任务,牵涉到月份天数的统计,嫌以前的各种if麻烦,搜索String类型对象的时候发现了一个办法,很实用。
string thirtyOne="01030507081012";
string tempmonth;//目标月份
int totalDay;//总相差天数
if(thirtyOne.contains(tempmonth))
totalDay+=31;
照此下来,全部判断完只用几行代码。