1. 三元操作符 ?: 有时也称为条件操作符; 2. 对条件表达式 b? x: y 先计算条件 b 然后进行判断如果 b 的值为 true 计算 x的值 ,运算结果为 x 的值, 否则计算 y ,运算结果为 y 的值 ;
3. 一个条件表达式从不会又计算 x 也计算 y 条件操作符是向右关联的,也就是说 从左向右分组计算; 4.例如表达式 a? b: c? d: e 将按 a? b: (c? d: e)形式执行的每一个操作数必须是一个可以隐式转换成 bool 型的表达式或者执行操作符true 类型的表达式, 如果上述这两个条件一个也不满足 则发生运行时错误的第二和第三个操作数控制了条件表达式的类型 ; 5. 设 x 和 y 分别是第二个和第三个操作数的类型 ;
那么,如果 x 和 y为同一类型 则该类型即是条件表达式的类型; 否则, 如果从 x 到 y 存在一个隐式转换 ,但不存在 y 到x 的转换 ,那么 y是条件表达式的类型; 否则 ,如果从 y 到 x 存在一个隐式转换 ,但不存在 x 到y 的转换, 那么 x 是条件表达式的类型; 否则 ,没有定义任何表达式类型 发生编译时错误;
|