三元操作符类型的转换规则:

简介: 三元操作符类型的转换规则:

1.若两个操作数不可转换,则不做转换,返回值为Object类型

2.若两个操作数是明确类型的表达式(比如变量),则按照正常的二进制数字来转换,int类型转换为long类型,long类型转换为float类型等。

3.若两个操作数中有一个是数字S,另外一个是表达式,且其类型标示为T,那么,若数字S在T的范围内,则转换为T类型;若S超出了T类型的范围,则T转换为S类型。

4.若两个操作数都是直接量数字,则返回值类型为范围较大者

三目:一边为byte另一边为char,结果为int
其它情况结果为两边中范围大的。适用包装类型

byte b = 1;
char c = 1;
short s = 1;
int i = 1;
i = true ? b : c; // int
b = true ? b : b; // byte
s = true ? b : s; // short

表达式:两边为byte,short,char,结果为int型
其它情况结果为两边中范围大的。适用包装类型

byte b = 1;
char c = 1;
short s = 1;
i = b + c; // int
i = b + b; // int
i = b + s; // int

当 a 为基本数据类型时,a += b,相当于 a = (a) (a + b)
当 a 为包装类型时, a += b 就是 a = a + b

byte b = 1;
char c = 1;
short s = 1;
b += s; // 没问题
c += i; // 没问题

常量任君搞,long以上不能越

byte b = 1;
char c = 1;
short s = 1;
b = (char) 1 + (short) 1 + (int) 1; // 没问题
// i = (long) 1 // 错误
相关文章
|
5月前
|
存储 Java
02 Java基础语法(变量+数据类型+运算符)(上)
02 Java基础语法(变量+数据类型+运算符)
53 4
|
8月前
|
编译器 测试技术 Go
表达式求值——隐式类型转换与操作符属性
表达式求值——隐式类型转换与操作符属性
|
索引
操作符之关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用操作符,函数调用操作符,访问结构体成员操作符
操作符之关系操作符,逻辑操作符,条件操作符,逗号表达式,下标引用操作符,函数调用操作符,访问结构体成员操作符
|
JavaScript
布尔类型的转换规则?
1.使用 Boolean() 函数
隐式类型转换 算术转换 操作符的属性
隐式类型转换 算术转换 操作符的属性
63 0
|
测试技术
变量、数据类型和运算符
变量、数据类型和运算符
|
存储 Unix 编译器
表达式求值过程中会发生哪些隐藏的变化?求值顺序又由什么决定?——详解C表达式求值中的隐式类型转换,算术转换问题,以及操作符的属性
表达式求值过程中会发生哪些隐藏的变化?求值顺序又由什么决定?——详解C表达式求值中的隐式类型转换,算术转换问题,以及操作符的属性
177 0
|
Java
1 变量,类型,运算符,表达式
1 变量,类型,运算符,表达式
95 0

热门文章

最新文章