阅读390 返回首页    go 阿里云 go 技术社区[云栖]


Java分支结构

我们在前面已经详细的介绍过了什么是循环结构,那么在java中还有什么些什么结构呢?
现在我们来比较详细的探讨一下下一种java结构---分支结构:
Java的分支结构有两种:
1、 if语句
2、 switch语句。

首先我们介绍一下什么是分支结构:
分支结构就是在顺序结构的执行过程中岔出一个特殊的分支去执行,该岔出的分支是为了对一些内容进行判断和选择。

接着,什么是if语句:
If代表的是如果,一帮情况下和else连用。else代表的是 否则 。其基本表达式如下所示:
If(布尔表达式){
结果为真则执行测出的代码
}else{
结果为假,则执行这里的代码
}
看一个例子:


class BranchToIf{
    public static void main(String[] args) {
        /**
         * 下面的分支语句要做的事情是:
         * 首先,运算 12==10  得到一个布尔值,如果 12 == 10 为真 ,这进入代码 1 否则进入代码 2
         */
        if(12==10){
            //代码 1
            System.out.println("12等于10");
        }else {
            //代码 2
            System.out.println("12不等于10");//实际输出。。因为我侄儿子都知道12不等与10
        }
    }
}```  


当然,if语句的用法不止于此:
If(布尔表达式A){
    如果表达式A为真则执行这里。否则进入下一个else if的布尔表达式B的运算
}else if (布尔表达式B){
    如果布尔表达式B为真则执行这里,否则进入下一个不二表达式C的运算
}else if(布尔表达式C){
··如果布尔表达式B为真则执行这里,否则执行else下面的代码 

}else{
    如过ABC都不为真则执行这里。
}

代码如下:
class BranchToElseIf{
    public static void main(String[] args) {
        if(10==11){//显然不等,进入下一个else if
            System.out.println("10等于11");
        }else if (10==12){//显然不等,进入else if
            System.out.println("10等于12");
        }else if (10==13){//显然被不等 进入 else
            System.out.println("10等于13");
        }else {
            System.out.println("10等于10");//真是的执行代码,因为什么你知道的。
        }
    }
}
作为一个合格的开发者,你需要带自己所写的代码负责。所以,尽量不要去if   else if 里面再接着写判断,如果你非写不可,最多不要超过两层,你也许可以对非值进行理解,然后尽量在非此次值做逻辑。
比如说:
```javascript

class BranchToIf2 {
    public static void main(String[] args) {
        if (10 == 20) {
            System.out.println("10等于20");
        } else {
            System.out.println("10不等于20");
        }
        //可以改写为:其结果是一样的.
        if (10 != 20) {
            System.out.println("10不等于20");
            return;
        }
        System.out.println("10等于20");
    }
}

下面我们介绍什么是switch:
Switch语句判断的是,一个值和一堆值的映射关系,说简单点,就是从一值中找出你想要的哪一个值。
其语法如下:
Switch:一个你需要比对的值{
case value:
你要做的代码
一般要有一个break:
case value2 :
你需要执行的代码
一般要有一个break:
default:
如果都没有和你期望的值映射成功,则执行这里,这里不需要惊喜break。
}
代码如下:

class BranchToSwitch {
    public static void main(String[] args) {
        switchMetoh("Aatrox");
        switchMetoh2("Aatrox");
    }
    static void switchMetoh(String i) {
        switch (i) {
            case "Aatrox":
                System.out.println("暗夜剑魔");//执行这里
                break;//结束
            case "Ahri":
                System.out.println("九尾妖狐");
                break;
            default:
                System.out.println("没有匹配值");
        }

    }
    static void switchMetoh2(String i) {
        switch (i) {
            case "Aatrox":
                System.out.println("暗夜剑魔");//执行这里
                //没有break则会穿透!所有case代码都会执行,直到default
            case "Ahri":
                System.out.println("九尾妖狐");
            default:
                System.out.println("没有匹配值");
        }
        // 执行结果:
        /*
        *   暗夜剑魔
        *   九尾妖狐
        *  没有匹配值
        * */
    }
}

对于switch语句需要注意的是,每一个case下面的代码必须要跟break,否则就会形成穿透现象,直到遇到下一个break或则defaut.

最后更新:2017-05-25 15:01:27

  上一篇:go  我的博客即将同步至“云栖社区”,诚邀技术同仁一起入驻。
  下一篇:go  mac下ssh登录REMOTE HOST IDENTIFICATION HAS CHANGED