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

  • 相关阅读:
    05Linux系统常用命令
    04Linux系统目录结构
    02Linux文件系统基本结构
    01Linux_BASH基本操作
    [HTML] HTML常用标签及HTML语义化理解
    [Tools] MDN简介及如何使用MDN查找资料
    [HTTP] 初识HTTP
    [Git] Git 入门(常用命令使用)
    [CL](入门)命令行常用命令使用技巧
    IFE_part2_JavaScript_Ajax学习
  • 原文地址:https://www.cnblogs.com/q2546/p/11395659.html
Copyright © 2011-2022 走看看