分支结构学习笔记

来源:互联网 发布:同业 知乎 编辑:程序博客网 时间:2024/06/07 14:35

任何人在做选择时,两边同样的优秀时,选择其中之一显得那么困难,以致于出现一个名次叫做,选择困难症。生活中时常遇见。

程序是没有思想的所以在执行程序面前只会按部就班的执行,如果两段相似的程序,只能执行其中一段,按照程序本身的执行规则,两段程序会先后执行,那么这就不是想要的效果了,那么让程拥有选择的能力显得那么有必要,于是分支结构就出现了。

接下来要说的是Java中的几个分支结构,分别是 if、if else 、嵌套if else、 switch。

if判断是最基本的判断语句,开发中也是常用的。下面看下实例:

//if 判断样例
        if(i<0){
            System.out.println("值:"+i);
        }

解析:该语句表示,当i值小于0时,执行输出i值。也就是当表达式满足时,才执行判断结构里面的程序。

语法:if(布尔表达式){//执行语句}

遇到二选一时,我们还可以配合else使用

下面再看if else实例:

//if else 判断样例
        if(i<0){
            System.out.println("值:"+i);
        }else{
            System.out.println("值:"+i+1);
        }

解析:以上语句表示,当i值小于0时输出i值,否则当i大于0时,输出i+1的值。

语法:if(布尔表达式){//执行语句}else{//执行语句}

有时我们可能需要不止两个选择,可能是三个或者四个,控制选择的条件,也不止一个,那么下面实例同样可以做到:

        if( i < 0 ){
            System.out.println("值:"+i);
        }else if( i == 0 ){
            System.out.println("值:"+i+1);
        }else{
            System.out.println("值:"+(i-1));
        }

解析:以上程序表示,第一个表达式成立时,也就是i值小于0时,输出i值,当第二个表示成立时,也就是i值等于0时,输出i+1的值,否都输出i-1的值。

此种写法相比而言比较繁琐,如果条件较多不建议使用。

有时候我们需要在选择一次后还要在进行选择时,这就用到了我们的嵌套分支,来看下面的实例:

//嵌套分支样例
        if( i < 0 ){
            if( i == 0 ){
                System.out.println("值:"+i+1);
            }else{
                System.out.println("值:"+i*1);
            }
            System.out.println("值:"+i);
        }else{
            System.out.println("值:"+(i-1));
        }

解析:所谓的嵌套就是分支里面再写分支,以上实例表示,当i不小于0成立时,输出i-1的值,当i小于0时,再判断i值是否等于0,如果等于输出i+1的值,否则不等于0时输出i乘1的值。

如果有需要可以一直嵌套,直至完成需要。

需要注意的是,else必须在所有的else if之后,原因是每个单独if判断只能存在一个else。else if 在数量上则没有限制,但是不可以写在else之后,必须在前。

上面也有说到,如果有很多选择时,上面那个写法比较繁琐,那有没有简便的写法呢?很显然也是有的,那么下面我们就来看下switch语句:

//switch 语句样例
        switch(i){
        case '0':
            System.out.println("值:"+(i-1));
            break;
        case '1':
            System.out.println("值:"+i);
            break;
        case '2':
            System.out.println("值:"+i+1);
            break;
        case '3':
            System.out.println("值:"+i*1);
            break;
            ....
        case n:
            System.out.println("值:"+i+n);

            break;

            default:
                System.out.println("值:"+i);

        }

解析:以上语句表示,判断i值,如果i值等于 case 参数,则输出跟随其后的程序,break跳出switch。如果比较没有发现和变量i相同的case参数,则会输出default后面的默认程序,default后面不需要break,因为默认程序走完就会自动跳出switch。

需要注意的是switch 语句中的变量类型可以是: byte、short、int 或者 char。

从 Java SE 7版本 开始,switch 也支持字符串类型,同时 case 标签必须为字符串常量或字面量。

一个switch可以拥有很多case,每个case后面紧跟着比较参数以及冒号,比较参数也必须和变量的类型相同。

另外一种情况,如果有两个case,case1后面没有跟随break,case2后面跟随有break,那么变量在跟case1 比较相同后还会执行case2,然后遇到break才跳出switch,如果在case1后面加上break,变量在比较相同执行程序后,就直接跳出switch了。


原创粉丝点击