Java小农养成记第二天

Day02

第五章 Java流程控制语句

5.1 概述

在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。

5.2 顺序结构

Created with Raphaël 2.3.0 开始 操作A 操作B 操作C 结束

5.3 判断语句

5.3.1 if

  • if语句第一种格式:if

    if(关系表达式){
     语句式;
    }
    
  • 执行流程

    • 首先判断关系表达式其结果是true还是false
    • 如果是true就执行语句体
    • 如果是false就不执行语句体
Created with Raphaël 2.3.0 开始 条件判断 语句体 结束 yes no

5.3.2 if……else

  • if语句第二种格式:if……else

    if(关系表达式){
        语句体1;
    }else{
        语句体2;
    }
    
  • 执行流程

    • 首先判断关系表达式看其结果是true还是false
    • 如果是true就执行语句体1
    • 如果是false就执行语句体2
Created with Raphaël 2.3.0 开始 条件判断 语句体1 结束 语句体2 yes no

5.3.3 if……else if……else

  • if语句第三种格式:if……else if……else

    if(关系表达式){
     语句体1;
    }else if{
     语句体2;
    }
    ……
    else if{
     语句体n;
    }else{
     语句体n+1;
    }
    
  • 执行流程

    • 首先判断关系表达式1看其结果是true还是false
    • 如果是true就执行语句体1
    • 如果是false就继续判断关系表达式2看其结果是true还是false
    • 如果是true就执行语句体2
    • 如果是false就继续判断关系表达式…看其结果是true还是false
    • ……
Created with Raphaël 2.3.0 开始 条件判断1 语句体1 结束 条件判断2 语句体2 条件判断n 语句体n yes no yes no yes

5.3.4 语句练习

  • 指定考试成绩,判断成绩等级
成绩等级
90-100优秀
80-89
70-79
60-69及格
60以下不及格
public class Demo01Practise{
    public static void main(String[] args){
        int score = 98;
        if(score >= 90 && score <= 100){
            System.out.println("优秀");
        }else if(score >= 80 && score <= 89){
            System.out.println("好");
        }else if(score >= 70 && score <= 79){
            System.out.println("良");
        }else if(score >= 60 && score <= 69){
            System.out.println("不及格");
        }else{
            System.out.println("ERROR");
        }
    }
}

5.4 选择语句

5.4.1 switch

  • switch语句格式:
/**
switch语句使用的注意事项:
1.多个case后面的数值不可以重复
2.switch后面小括号当中只能是下列数据类型
基本数据类型:byte/short/char/int
引用数据类型:String字符串、enum枚举
3.switch语句格式可以很灵活,前后顺序可以颠倒,而且break语句还可以省略。
“匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整体结束为止。”
*/
switch(表达式){
    case 常量值1:
        语句体1;
        break;
    case 常量值2:
        语句体2;
        break;
    ……
    case 常量值n:
        语句体n;
        break;
    default:
        语句体n+1;
        break;//最后一个break语句可以省略,但不推荐省略
}
  • 执行流程

    • 首先计算出表达式的值
    • 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
    • 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
a == 值1
a == 值2
a == 值3
a == default
开始
表达式a
语句体1
break
其他语句
语句体2
break
语句体3
break
语句体3
break

5.5 循环语句

5.5.1循环概述

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

5.5.2 for

  • for循环语句格式:

    for(初始化语句; 条件判断; 步进语句){
        循环体;
    }
    //步进语句:每次循环之后都要进行的扫尾工作,每次循环结束之后都要执行一次
    
Created with Raphaël 2.3.0 开始 初始化语句 条件判断 循环体 步进语句 结束 yes no

5.5.3 while

/*
    while循环有一个标准格式,还有一个扩展格式

*/
//标准格式:
while(条件判断){
    循环体;
}

//扩展格式,流程图和for的流程图一样
初始化语句;
while(条件判断){
    循环体;
    步进语句;
}

标准格式:

Created with Raphaël 2.3.0 开始 条件判断 循环体 结束 yes no

5…5.4 do-while

/*
    do-while循环的标准格式:
*/
do{
    循环体
}while(条件判断);//分号不可省略
Created with Raphaël 2.3.0 开始 初始化语句 循环体 条件判断 结束 yes no

5.5.5 循环练习

求出1-100之间的偶数和

public class Demo01HundredSum{
    public static void main(String[] args){
        int sum = 0;
        for(int i = 1; i <= 100; i++){
            if(i % 2 == 0)    sum = i + sum;
        }
        System.out.println("结果是:"+sum);
    }
}

5.5.6 三种循环的区别:

  1. 如果条件判断从来没有满足过,那么for循环和while循环将会执行0次,但是do-while循环会执行至少一次。
  2. for循环的变量在小括号当中定义,只有循环内部才可以使用。while循环和do-while循环初始化语句本来就在外面,所以出来循环之后还可以继续使用。

5.5.7 break语句和continue语句

break关键字的用法有常见的两种:

  1. 可以用在switch语句当中,一旦执行,整个switch语句立刻结束
  2. 还可以用在循环语句当中,一旦执行,整个循环语句立刻结束。打断循环。

关于循环的选择,有一个小建议:凡是次数确定的场景多用for循环;否则多用while循环。

另一种循环控制语句是continue关键字。

一旦执行,立刻跳过当前次循环剩余内容,马上开始下一次循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值