zoukankan      html  css  js  c++  java
  • 说说三元运算和if...else的相同之处

    三元运算符和if-else语句:不同之处。

      a) 三元运算符是必须要有返回值,而if-else语句并不一定有返回值,其执行结果可能是赋值语句或者打印输出语句。

      b) java三元表达式有字符强转(双目数值提升)的功能,返回值类型为两个返回值中类型精度更高的的那个类型

        1) 在java中常见数据类型其范围从小到大(精度由低到高):byte<short<char<int<float<double。

        2) jvm在给数值分配数据类型的时候会选取刚好能装下该数据大小精度的数据类型进行分配(如99.0为float,99为byte/short)

      c) 三元表达式的性能更好。

      d) 举例:

        下面用一段代码来解释三元表达式的字符强转功能,以下测试代码也涵盖了很多面试题目,希望各位可以从中理解上述三条规则。

        char a=‘a‘;

        int i=96;

        //规则1,定义了数据类型的变量与未定义变量的数值

        System.out.println(2==2?i:9.0); //返回96.0

        //jvm给9.0分配数据类型为float,所以返回值类型为float

        System.out.println(2==2?98:a); //返回b

        //jvm给98分配数据类型为byte/short,所以返回值类型为byte/short,故结果会变为ASCII码98对应的字符

        //规则2,两个已经定义数据类型的变量

        System.out.println(2==2?a:i);//返回97

        //返回值类型为int,返回值为a,返回结果为a的控制字符‘a’对应的ASCII码97

        //规则3,两个未定义的数值

        System.out.println(2==2?99:9.0);//返回99.0

        System.out.println(2==2?99:‘b‘);//返回C

  • 相关阅读:
    创建共享内存函数CreateFileMapping()详解
    窗口类、窗口类对象与窗口
    ubuntu中文版切换为英文后字体变化问题解决
    安装ubuntu12.04LTS卡住以及花屏问题
    时钟周期、振荡周期、机器周期、CPU周期、状态周期、指令周期、总线周期、任务周期
    波特率
    myod
    mycp
    20165226 2017-2018-2《Java程序设计》课程总结
    2017-2018-2 20165226 实验五《网络编程与安全》实验报告
  • 原文地址:https://www.cnblogs.com/q2546/p/11395659.html
Copyright © 2011-2022 走看看