Java分支结构

  1. 云栖社区>
  2. 博客>
  3. 正文

Java分支结构

ritit 2017-05-25 14:39:54 浏览871
展开阅读全文

我们在前面已经详细的介绍过了什么是循环结构,那么在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 里面再接着写判断,如果你非写不可,最多不要超过两层,你也许可以对非值进行理解,然后尽量在非此次值做逻辑。
比如说:

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.
 

网友评论

登录后评论
0/500
评论
ritit
+ 关注