当前位置:首页 » 编程语言 » java中三目运算

java中三目运算

发布时间: 2022-07-26 12:37:03

‘壹’ java怎么用三目运算符,输入任意比较三个数大小,输出中间数

int comp(int a, int b, int c)

{

return a >= b ? (a >= c ? (b >= c ? b : c) : a) : (a >= c ? a : (b >= c ? c : b));

}

‘贰’ java 三目运算符

其实这主要是JAVA重载和基本数据类型自动转型造成的。
JAVA重载:这里主要调用了println(char x) 和println(int x) 两个方法。
基本数据类型自动转型原则中有一条:有多种类型混合运算时,系统将所有类型转换为大的,然后再进行计算。
自动转型顺序:
byte->short(char)->int->long->float->double.
还有0~65535可以认为是int也可以是char。
System.out.println(true?x:0);此处0被认为是char,所以输出b,倘若把0改为65536,则输出66.
同理
System.out.println(true?x:1111111110);此处1111111110已经大于了65535,所以x被自动转型为int再输出,输出66.

System.out.println(false?i:x);也是同理,将x转换为int,输出 66.
其实我讲得也不是非常详细,有兴趣可以仔细看下重载和基本数据类型转型的章节,希望能帮到你。

‘叁’ java三目运算符

三目运算符a
>
b
?
a
:
b运算规则是:如果?前面的等式为true,即a>b,则执行返回a,否则返回b;
先判断变量year是否大于对象a的year值,如果大于就返回1,小于就继续判断year是否小于对象a的year值,如果小于就返回-1;此后就是year==a.year的情况,依次判断月份和日

‘肆’ 在JAVA中,什么是单目/双目/三目运算符

所谓单目运算符就是只有需要一个操作数的运算符,如:--、++同理,双目运算符就是需要两个操作数的运算符,如:+、-、*、/、=
等。三目运算符只有一个
?
:
。(需要三个操作数)

‘伍’ JAVA三目运算符问题

1、三目运算符 (表达式1)?(表达式2):(表达式3),计算方法是这样的:表达式1是一个逻辑表达式,如果其值为true,则整个表达式的值为表达式2的值,否则为表达式3的值

2、例子:int i = (5 > 3) ? (5 + 3) : (5 - 3);结果为i = 8.因为5 > 3为true,所以i = 5 + 3.

3、根据三目运算符的从右到左的结合性,我是这样划分的
year > a.year ? 1 : (year < a.year ? -1 : (month > a.month ? 1 : (month < a.month ? -1 : (day > a.day ? 1 : (day < a.day ? -1 : 0)))));
所以应该从最右边的那个表达式开始计算,结果应该是1、0、-1中的一个值。

以上纯属个人理解。没搞清楚你这个算法到底是什么意义。。。。还有你的compare()方法不能声明为静态。

‘陆’ Java三目运算符

这个问题主要考察的应该不是三目运算符,而是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。
如果问题解决,请采纳本答案

‘柒’ java中三目运算符

先学java的叫它,三元运算符;先学c的叫它三目运算符
即( ?: )
如名字表示的三元运算符需要三个操作数。
语法为:条件表达式?表达式1:表达式2。
说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。
其逻辑为:“如果为真执行第一个,否则执行第二个。”

‘捌’ 在Java 里什么时候使用三目运算比较好

需要进行判断的时候使用三目运算比较好,可以替换if--else

三目运算符,又称条件运算符。条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。

例如:

//判断一个数的正负
publicStringjudge(inta){

/*if(a>0){
return"a是正数";
}else{
return"a是负数";
}*/

//三目运算符
Stringc=a>0?"a是正数":"a是负数";

returnc;
}

此例子里面三目运算符与if--else效果是一样的。

‘玖’ 三目运算符 java

这是编译器的自动装箱/拆箱转换引起的问题,
自动装箱/拆箱的特性,只要一个运算中有不同的类型,涉及到类型转换,那么编译器会往下(基本类型)转型,再进行运算。 就是说,如果运算中有int和Integer,Integer会先转成int再计算。
所以你的代码中,最后一行
i = StringUtils.isEmpty(ComNo)?RecordType:0;
实际的运行会是这样 i = StringUtils.isEmpty(ComNo)?RecordType.intValue():0;
RecordType为null,所以会报错。
可以改成:i = StringUtils.isEmpty(ComNo) ? RecordType : Integer.valueOf(0);
保持类型的一致就不会自动转型了

热点内容
java中io流 发布:2025-01-25 09:02:54 浏览:878
华为高斯数据库 发布:2025-01-25 08:55:38 浏览:30
php是动态语言 发布:2025-01-25 08:45:44 浏览:67
服务器关闭了电脑网络还能用 发布:2025-01-25 08:22:28 浏览:587
热血航线的登录密码在哪里可以看 发布:2025-01-25 08:22:27 浏览:769
5系怎么选择配置 发布:2025-01-25 08:22:18 浏览:842
pythonscipy 发布:2025-01-25 08:18:52 浏览:418
恕瑞玛服务器地址 发布:2025-01-25 08:18:51 浏览:801
oa源码php 发布:2025-01-25 08:11:31 浏览:734
gpc脚本 发布:2025-01-25 08:10:47 浏览:317