`
顽石OK07
  • 浏览: 83861 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

谈谈java的三元操作符(条件操作符)

阅读更多

转载:http://hi.baidu.com/%B3%F3%C5%AEyuyu/blog/item/a1e61df59f40f2d0f3d385ef.html

 

概念我就不说了。

今日小谈类似问题

public class Apple{
public static void main(String[] args)
{
   char x='Y';
   int i=1;
   System.out.println(true? x:i);
   System.out.println(false ? 1:x);
}

} 这个输出为什么是89和Y,不是Y和Y呢?

答案是:(比较长,耐心看)

(1)如果表达式1和表达式2具有相同的类型,那么整个条件运算符结果的类型就是这个类型。

(2)如果一个表达式的类型是T,T是byte或short或char,另一个表达式的类型是int类型的常量表达式,而且这个常量表达式的值是可以用类型T表示的(也就是说,常量表达式的值是在类型T的取值范围之内),那么整个条件运算符结果的类型就是T。


(3)除以上情况外,如果表达式1和表达式2的类型不同,那么将进行类型提升,整个条件运算符结果的类型就是提升后的类型。


System.out.println(true?x:0); / ne3。表达式1是char类型,表达式2是int类型的常量表达式,而且这个常量表达式的值0可以用char类型来表示,因此整个条件运算符结果的类型 就应当是char类型,所以输出的结果就是'A'。
System.out.println(true?x:1111111110); / ne4。表达式1是char类型,表达式2是int类型的常量表达式,但是这个常量表达式的值已经超出了char类型的取值范围,因此要进行类型提升,把 char类型提升为int类型,整个条件运算符结果的类型就是int类型了,所以输出的结果是65(字符A的ASCII码)。

 

System.out.println(false?i:x); / ne5。表达式1是int类型的变量,表达式2是char类型的变量,没有常量表达式。因此要进行类型提升,把char类型提升为int类型,整个条件运 算符结果的类型就是int类型。所以输出结果就是65。

 

不知道您明白没有,好多人都不知道,此类问题也许不常见,即使出现了,也用if-else代替了。小小菜鸟在此发博,有问题请指正。。。

 

 

 

分享到:
评论

相关推荐

    java 三元操作符的使用

    在Java中,三元操作符是一种简洁的条件表达式,用于在两个值之间进行选择。

    Java操作符总结-动力节点共20页.pdf.zip

    Java编程语言中的操作符是程序设计中的重要组成部分,它们用于执行特定的数学或逻辑运算,帮助我们...动力节点的这20页总结,全面覆盖了Java操作符的基础知识,对于初学者和有经验的开发者来说,都是很好的参考资料。

    Java基础知识之数据类型和操作符

    Java是一种强类型语言,这意味着在Java中,每个变量都必须先声明其数据...此外,Java还提供了一些特殊的操作符,如三元操作符(? :)和位操作符(&、|、^、~、、>>)。使用这些操作符时,需要注意它们的优先级和结合性

    35.java三元运算符.zip

    35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元运算符.zip35.java三元...

    操作符学习案例

    7. **条件(三元)操作符**:`? :`允许根据条件返回一个值。例如: ```java int max = (a > b) ? a : b; // 如果a大于b,max为a;否则,max为b ``` 在`OperatorTest.java`源码文件中,可能包含了上述操作符的使用...

    Java操作符的优先级和结合性

    以下是一个完整的Java操作符优先级列表: 1. 后缀运算符:`[ ]`、`.`、`( )`(函数调用) —— 这些操作符从左到右执行。例如,`array[index]`、`object.method()` 和 `(expression)`。 2. 单目运算符:`!`、`~`、...

    C# 操作符之三元操作符浅析

    在C#编程语言中,三元操作符(条件操作符)"?:", 是一种简洁的语法结构,用于根据条件来决定表达式的返回值。这种操作符具有三个操作数,通常的形式为 `condition ? value_if_true : value_if_false`。它的主要作用...

    C++操作符的优先级

    8. 条件操作符:?: 9. 逗号操作符:, 结合性 C++操作符的结合性指的是在多个操作符同时出现时,它们的执行顺序。C++语言中,操作符的结合性有两种: * 左结合性:从左到右执行,例如加法和减法操作符。 * 右结合...

    java解答三元一次方程组

    在Java编程中,解决三元一次方程组通常涉及到线性代数的知识,特别是矩阵变换。上述代码提供了一个简单的框架来实现这一目标。首先,我们理解三元一次方程组是一组包含三个变量(x、y和z)的方程,如: 1. 2x + 4y ...

    C++操作符详解

    条件操作符(也称为三元操作符)是 `? :`,它根据条件表达式的真假选择返回其中一个表达式的结果。例如,`condition ? expr1 : expr2`,如果condition为真,返回expr1的值,否则返回expr2的值。 九、类型转换操作符 ...

    EL常用操作符

    :`):类似于Java中的三元条件操作符,其格式为`表达式 ? 真值 : 假值`。例如,`score > 60 ? '合格' : '不合格'`。 - **算术操作符**:包括加法(`+`)、减法(`-`)、乘法(`*`)、除法(`/`或`div`)、取模(`%`...

    php学习笔记(三)操作符与控制结构

    5. 三元操作符是一种简洁的条件表达式,允许在一个表达式中根据条件判断的结果选择不同的值。 6. 错误抑制操作符用于抑制由于某些操作可能引发的错误警告。 在PHP中,操作符还具有特定的优先级和结合性。优先级决定...

    第5节-操作符详解.pdf

    条件操作符也被称为三元操作符 (`? :`),它的语法如下: ```c 条件 ? 表达式1 : 表达式2; ``` 如果条件为真,则执行表达式1;否则执行表达式2。 ### 逗号表达式 逗号表达式允许在同一行内执行多个表达式,并返回...

    java三元组

    用三元组表示稀疏矩阵,实现稀疏矩阵的乘法。对于乘法结果得到的结果矩阵,设计一个算法,寻找该矩阵的鞍点【最大选题人数:5】 提示:二维数组的鞍点:如果存在一个这样的元素,它是所在行上最大的元素,同时又...

    php 操作符与控制结构

    - **三元操作符**:根据条件表达式的结果返回两个值中的一个,如 `($grade >= 50) ? "Passed" : "Failed"`。 #### 操作符的优先级与结合性 操作符具有不同的优先级和结合性,这意味着在没有明确括号的情况下,...

    详解Java的按位操作符

    Java的三元操作符是一种特殊的操作符,功能和if-else类似。它可以根据条件表达式的值来选择执行不同的语句。 Java的按位操作符是Java语言中一个非常重要的概念,它们可以实现复杂的逻辑操作和数据处理。通过学习和...

    详解Java的位操作符

    Java的位操作符是编程语言中用于直接操纵...总的来说,理解并熟练运用Java的位操作符和三元操作符可以提高代码的效率和可读性,尤其是在处理底层数据结构和算法时。在编写高性能的Java程序时,这些工具是不可或缺的。

    C++操作符优先级、可重载型

    :`,是三元操作符,它们需要三个操作数。 3. **可重载性**: - C++允许用户为某些操作符定义新的行为,这称为操作符重载。比如,你可以让`+`操作符用于类类型的对象,使其支持自定义的加法操作。但并非所有操作符...

Global site tag (gtag.js) - Google Analytics