public class OperateDemo33 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int m = 1,n;
n = (m>1)?100:'a';//
1 System.out.println(n);//97
2 System.out.println((m>1)?100:'a');//a
int a = 1,b,c=2;
3 System.out.println((a>1)?100:'a');//a
4 System.out.println((c>1)?100:'a');//d
5 System.out.println((a>1)?100:(int)'a');//97
6 System.out.println((a>1)?(int)100:'a');//a
7 System.out.println((a>1)?100:(char)('a'+1));//b
8 System.out.println((c>1)?100:(char)('a'+1));//d
9 System.out.println((a>1)?(char)100:('a'+1));//b
10 System.out.println((c>1)?(char)100:('a'+1));//d
11 System.out.println((a>1)?100:(int)('a'+1));//98
12 System.out.println((c>1)?100:(int)('a'+1));//100
13 System.out.println((a>1)?100:('a'+1));//98
14 System.out.println((c>1)?100:('a'+1));//100
}
}
三元运算符不是自动提升类型的么,那么第3,4行结果怎还是char类型,不是应该为int型?
且由7-10行输出结果可以断定:三元运算符只要强转了一个表达式结果,那么另一个表达式也被强转了?,如果是那么第6行输出又怎么解释。
三元运算符的结果只能是一种数据类型?
求指教转换规则,自己实验了多种组合,完全把自己被转懵了。。。
|
|