Java三目运算符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java三目运算符相关的知识,希望对你有一定的参考价值。
System.out.println("输入san个数字:");
int a=qwe.nextInt();
int b=qwe.nextInt();
int c=qwe.nextInt();
int g;
g=a>b?a:b;
System.out.print(g);
如果我输入三个数字 在三目运算符里面应该怎么去写
i为int类型
x为char类型
第一行计算x和0,此时0可以被看作是char类型,所以x并没有被转换,而是直接输出B
第二行计算x和1111111110,而1111111110是无法保存为char类型的,只能当作int,所以此时x需要被强转成int之后再进行运算,char类型的x在强转成int之后就变成了他的asc码。也就是66。
第三行,计算x和i,i是int类型,所以与第二行同理,x被自动转换成int,结果为66。
如果问题解决,请采纳本答案 参考技术A 额、有这么麻烦么?
直接
switch(Integer.valueOf(ptype12==null?"-1":ptype12))
case -1;return ptype;break;
.. .. . .. . .
如果非要用三目运算符
得这么写
return "9".equals(ptype12)?ptype12:(其它表达式);
三目运算符是这个样子滴
布尔值?F1:F2
如果布尔值为真,执行F1,否则F2
还涉及到运算符优先级的问题
如果后面太长最好括起来
另外三目运算符不能单独使用,不能完全代替if else
可能会这么出现
value = boolean?v1:v2;
StringBuffer.append(boolean?v1:v2);
return boolean?v1:v2;
反正就是不能直接拿出来用了
以上回答你满意么?追问
我必须要用三目 因为是作业 你写的我没看明白呀!
本回答被提问者采纳Java三目运算符的使用(欢聚时代考题)
下面程序输出的结果是?
public class ExamSample {
public static void main(String[] args) {
new ExamSample().convert();
}
public void convert() {
int i = 012;
char a = ‘a‘;
System.out.println((i > 11) ? i : a);
System.out.println((i > 11) ? 65 : a);
System.out.println((i > 11) ? 65.0 : a);
}
}
输出结果为:97
a
97.0
核心思想:
1.若三目运算符中的两个表达式有一个是常量表达式,另一个是类型T的表达式,且常量表达式可以被T表示,则输出结果是T类型。
2.如果都是常量表达式,用向上类型转换
int i=012;012为八进制数,转换成十进制为10
第一个输出:a被提升为int类型,所以输出a的ASCII码为97;
第二个输出:由于65是一个常量表达式。若三目运算符中的两个表达式有一个是常量表达式,另一个是类型T(本题中为char)的表达式,且常量表达式可以被T表示,则输出结果是T类型。因此输出是字符,输出 a;
第三个输出:这时java就会根据运算符的精度进行自动类型的转换,由于前面是65.0,那么后面的a也就跟着变为97.0了
以上是关于Java三目运算符的主要内容,如果未能解决你的问题,请参考以下文章