• switch和if else的区别和应用


    序编码中的两种分支结构:switch和if else
    对于初学者而言对这两种分支结构可能不知道在什么情况下用什么样的分支结构
    那么我现在就来讨论一下在何种情况下选择何种分支结构。
    对于switch,一般适用于等值比较

    switch(x){
    case 值:
    //语句
    break; //optional

    case 值:
    //语句
    break; //optional
    可以有很多case语句

    default: //可选
    //语句
    }

    case值是在和x做一个等值比较,switch是不能做范围比较(也就是大小于比较)的,在某些情况下,switch也是可以转换成做范围比较的,比如在输入成绩判断等级的时候,比如:
    score>=90 A
    score>=80 B
    score>=70 C
    score>=60 D
    score<60 E

    可能有些同学要问了,在这样的情况下,如何去做一个等值比较在case语句中来判断成绩等级。
    对于这种情况,我们可以做一个取整运算来作比较,如:
    score/10=9 A
    score/10=8 B
    score/10=7 C
    score/10=6 D
    default E

    这样就可以把范围比较转换为等值比较了,但是大家注意了,switch语句的值只支持32位或者更小的整数值,也就是说只能是 byte,short,int,char类型,在JDK7.0以后,变量可以是String类型。

    对于if else而言可以做范围比较和布尔比较,数值的范围比较大家都知道,那么对于字符串的比较又该怎么做?
    那么javaAPI里提供了一个 equals() 的方法这个方法用于字符串的等值比较,返回值是String类型,这个方法是区分大小写的,那么还有一个 equalsIgnoreCase() 的方法,这个方法和 equals() 方法的功能是一样的,只不过在这个方法里面对于做比较的两个String是不区分大小写的,如:
    String str=XXXX;
    String str1=CCCC;
    if(str.equals(str1))或者也可以 if(str.equals("CCCC"))
    那么java API还提供了一个做类型比较的方法:instanceof
    这个方法用于判断所比较的对象是否属于特定的数据类型,如:
    if(str intanceof String)
    返回值是布尔类型

  • 相关阅读:
    Ubuntu 16.04远程登录服务器--ssh的安装和配置
    设置淘宝源
    shell 循环 read line
    apt-get update 报错 W: Unknown Multi-Arch type 'no' for package 'compiz-core'
    expdp dblink
    ubuntu apt-update NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
    listener.log文件过大导致oracle假死
    rsync_ssh
    ssh多主机
    elk大纲
  • 原文地址:https://www.cnblogs.com/CodeMeteor/p/3651143.html
Copyright © 2020-2023  润新知