Java学习笔记03-java流程控制语句(判断~选择~循环~跳转)

快速回忆

  1. 判断语句的格式有哪些
  2. 选择语句的格式
  3. 循环语句的格式
  4. 跳转语句的使用场景及作用

知识讲解

4.1 流程控制语句

        在Java程序运行时,在主要执行的main方法中,程序会默认根据代码编写的顺序,从上到下运行。在一个程序执行的过程中,对程序运行的顺序造成影响的语句就是流程控制语句

        流程判断语句也是对于现实中某些行为的抽象。常见的Java流程控制语句有判断语句、选择语句、循环语句和跳转语句

        流程判断语句可以根据不同的情况,做出相应的响应和决策,实现复杂的逻辑和功能(业务逻辑),换言之,相比于顺序执行,流程控制语句让计算机懂得了“思考判断”,而所建立的模型大小也决定了计算机的智商。

4.2 判断语句

        4.2.1 if

                首先判断关系表达式看其结果是true还是false。

                如果是true就执行语句体,如果是false就不执行语句体。

        if(关系表达式){
            语句体;
        }

        4.2.2 if...else

                首先判断关系表达式看其结果是true还是false。

                如果是true就执行语句体1,否则若为false就执行语句体2

        if(关系表达式) { 
            语句体1; 
        }else { 
            语句体2; 
        }

        4.2.3 if..else if...else

                首先判断关系表达式1看其结果是true还是false, 如果是true就执行语句体1,否则判断关系表达式2, 如果是false就继续判断关系表达式,循此往复直至程序到达出口。

        if (判断条件1) { 
            执行语句1;
        } else if (判断条件2) {
            执行语句2; 
        }
        ... 
        else if (判断条件n) {
            执行语句n; 
        } else { 
            执行语句n+1; 
        }

4.3 选择语句

        4.3.1 switch

                首先计算出表达式的值,其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。

                最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

        switch(表达式) { 
            case 常量值1: 
        	    语句体1;
        	break; 
            case 常量值2: 
        	    语句体2; 
        	break; 
            ... 
            default: 
                语句体n+1; 
        	break;
	    }

     

        4.3.2 switch 表达式的数据类型

                switch语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。byte,short,int可以自动转换为int类型。

        4.3.3 case的穿透性

                在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。

    public static void main(String[] args) { 
        int i = 5; 
        switch (i){ 
            case 0: 
                System.out.println("执行case0"); 
                break; 
            case 5: 
                System.out.println("执行case5"); 
            case 10: 
                System.out.println("执行case10"); 
            default: 
                System.out.println("执行default"); 
    } 
    //i=5时,则打印
    //执行case5
    //执行case10

        4.3.3 default的位置

                switch中的default关键字可以出现在switch的任意位置,并可以省略,但如果放在第一行则程序无论如何都会执行。

4.4 循环语句

        循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

                ①初始化表达式:负责完成循环变量初始化

                ②布尔表达式:负责判断是否满足循环条件,不满足则跳出

                ③步进表达式:具体执行的语句

                ④循环体:循环后,循环条件所涉及变量的变化情况

        4.4.1 for

                for循环使用固定的计数器控制循环次数,常用于已知次数的循环。

                for循环在循环前会初始化计数器,后续通过检验计数器是否仍然满足条件来决定是否继续循环。

        for( ①初始化表达式; ②布尔表达式; ③步进表达式){
	            ④循环体
        }

                执行顺序:①②③④→②③④→②③④…→②不满足条件则跳出循环

        4.4.2 while

                while循环使用一个条件来控制循环是否执行,常用于未知循环次数但满足条件的场景。

                while循环需要将步进表达式放入循环体中,手动更新条件状态,避免无限循环。

        ①初始化表达式
        while(②布尔表达式){
            ③循环体
            ④步进表达式
        }

                执行顺序:①②③④→②③④→②③④…→②不满足条件则跳出循环

        4.4.3 do...while

                do...while循环类似于while循环,区别在于至少执行一次循环体。

        ①初始化表达式
        do{
            ③循环体
            ④步进表达式
        }while(②布尔表达式);

        执行顺序:①③④→②③④→②③④…→②不满足条件则跳出循环      

        4.4.4 联系&区别

                联系

                        1.都可以重复的执行某一段代码

                        2.循环体内可以包含任意多的语句,并且有单独的循环体作用域

                        3.都可使用break和continue控制循环的执行

                区别

                        1.循环结构的表达式不同,并且步进表达式的位置也不同

                        2.使用场景不同,循环次数的已知时候使用推荐使用for,循环次数未知的时推荐使用while

4.5 跳转语句

        4.5.1 break

               break用于终止switch或者循环,单独使用没有意义

public static void main(String[] args) {
        for (int i = 1; i<=10; i++) {
        //需求:打印完两次HelloWorld之后结束循环
        if(i == 3){
            break;//终止循环
        } 
        System.out.println("HelloWorld"+i);
    }
}

        4.5.2 continue

                continue结束本次循环,继续下一次的循环,同break一样,离开循环语句单独使用无意义

public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
        //需求:不打印第三次HelloWorld
        if(i == 3){
            continue;
        } 
        System.out.println("HelloWorld"+i);
    }
}

        

  • 31
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值