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);
如果我输入三个数字 在三目运算符里面应该怎么去写

这个问题主要考察的应该不是三目运算符,而是java运算的自动转换。
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三目运算符的主要内容,如果未能解决你的问题,请参考以下文章

java三目运算符

java三目运算符

java 三目运算符

java三目运算符

java三目运算符

java啥叫“三目条件运算符”?