从零开始学Java--第五章(流程控制)

62 阅读6分钟

一。支撑案例的知识点

Scanner的基本使用:
    Scanner概念:扫描器,通过Scanner类扫描用户在控制台录入的数据
    基本使用步骤:
        1.导包:在class定义的上面,import java.util.Scanner
        2.创建键盘录入对象,Scanner scanner  = new Scanner(System.in);
        3.接收用户输入的数据,并赋值给int型变量i。int i = scanner.nextInt();
        
Random类的简单使用:
    random,即为随机数,用于产生随机数的类
    使用步骤:
        1.导包 import java.util.Random;
        2.创建Random类的对象:Random r = new Random();
        3.获取随机数:int number = r.nextInt(10);此处10代表0-10范围内的数字,包含0,不包含10,左闭右开
    

二。流程控制结构

流程控制结构概念:程序的结果跟代码的执行顺序紧密相关,通过使用一些特定语句控制代码的执行顺序从而完成特定的功能,这就是流程控制结构

三。流程控制结构分类

顺序结构,选择结构,循环结构

四。流程控制结构之顺序结构

顺序结构:代码从上到下,从左到右的执行。这是最简单的流程控制,不需要特定语句,程序大多数代码都是这样执行的

五。流程控制结构之选择结构

概念:根据不同的条件选择不同的代码来执行的代码结构。选择结构会先判断条件是否成立,条件成立执行一部分代码,不成立执行另一部分代码,所以选择结构也叫判断结构
选择结构分类:
    if语句:一般用于区间值的判断,如:时间为0-8,小黑说“早上好”。时间9-12,小黑说“中午好”
    switch语句:一般用于固定值的判断,如:你说“星期一”,小黑说“monday”;你说“星期二”,小黑说“tuesday”
选择结构if语句的三种形式
    1.第一种格式:if(关系表达式){//语句}满足条件,则执行语句,反之,不执行,如果程序会继续往下执行
    2.第二种格式:if(关系表达式){//语句体1} else {//语句体2}
    3.第三种格式:if(){}else if ... else; if开头,n个else ifelse结尾执行n+1个语句体
    小知识:
        三种导包方式:手动导包,点击鼠标自动生成,快捷键Alt + enter
        做数据测试时,应该测试正确数据,错误数据,边界数据
 选择结构switch语句
     格式:
         switch(表达式){
             case1:
                 语句体1breakcase2:
                 语句体2break;
             ......
             default:
                 语句体n+1break;
         }
     格式解读:
         表达式取值类型:byteshortintchar,JDK5后可以是枚举,JDK7后可以是String;
         枚举:一系列数目可数的数据。如:每周的星期,每年的月份
         case1case2case后面跟的是跟表达式比较的值
         语句体1,语句体2,语句体n+1:语句体部分可以是一条或多条语句
         break:表示中断,结束的意思,当执行时,后面就不执行了
         default:表示所有情况都不匹配时,就执行该处内容,和if语句的第三种格式中else类似。
         default后面的break:可写可不写,因为switch已经走到最后一步了,建议写上。

六。流程控制结构之循环结构

概念:是一部分代码按照次数或一定条件反复执行的代码结构
分类:
    for循环:一般用于已知次数的循环
    while循环:一般用于次数未知的循环
    do while循环:主要在do ,先执行一次,再判断
for循环:
    格式:
        for(初始化语句;判断条件语句;控制条件语句) {
            //循环体
        }
    执行流程:
        for循环开始->初始化语句(只执行一次)->判断条件语句->如果不满足->循环结束
        ->如果满足条件->执行循环体->控制条件语句
        最后当不满足判断条件语句时,循环结束
while循环:
    格式:
        初始化语句;
        while(判断条件语句) {
            循环体;
            控制条件语句
        }
    注意事项:初始化语句可以省略,控制条件语句可以省略(这里例子重点看看)
    执行流程:
        初始化语句->判断 ->不满足条件->循环结束
        ->满足条件->执行循环体->控制条件语句->再重新判断,重复执行
do while循环:
    格式:
        初始化语句;
        do{
            循环体语句;
            控制条件语句
        }while(判断条件语句);
    注意事项:
        while后面的分号不能省略
        do while循环的循环体语句至少执行一次
    执行流程:
        执行初始化语句->执行循环体->控制条件语句->判断->如果false则循环结束
        ->如果true->继续从循环体执行
三种循环的区别
    格式不同:
        for循环各部分形成一个整体
        whiledo while初始化语句与循环定义分离
        whiledo while初始化语句控制语句一般会省略,for循环一般不省略
    初始化语句不同:
        定义位置不同,作用域不同
        for循环只执行一次,whiledo while可以在循环体外使用
    循环体执行次数不同:
        forwhile可能一次都不执行,do while至少执行一次
    使用场景不同:
        forwhile可以互换,while更简洁
        for循环一般用于循环次数固定的场景
        while一般用于循环次数不固定的场景
        当循环体至少执行一次时,使用do while
    相同点:
        只要满足判断条件,程序继续执行,如果不满足,结束。
两种简单的死循环
    死循环概念:循环体会一直执行的情况
    for(;;){//循环体,根据实际情况结束循环}
    whie(true){//循环体,根据实际情况结束循环}
breakcontinue
    break:中断。用于switch语句和循环语句中,在switch语句中,表示结束switch代码块;在循环语句中,表示结束循环
    continue:继续。表示结束本次循环,开始下一次循环
循环嵌套:在一个循环体语句中包含另一个循环语句时,称为循环嵌套
    -   案例:按班级获取所有学生(3个班,每班5个人)ForForDemo;for循环快捷写法:fori回车  
字符串的拼接: 将需要拼接的值,用”++“取代,再在中间填入值。如:a -->"+a+" 
带标号的循环:
    标号概念:即循环名称,给循环定义一个标号,可以根据需要结束或跳转到指定循环,常用于多层嵌套循环中
    语法:
            格式:标号:for() {}  //标号大小写都可以
            break 标号;代表结束指定标号的循环。continue标号;代表结束本次循环,跳转到指定标号循环