JavaSE-03 【流程控制语句】

JavaSE-03 【流程控制语句】

第一章 流程控制

1.1 流程概述

在一个程序执行的过程中,每条语句的执行顺序对程序的结果是由直接影响的,
也就是,语句的流程对运行结果有着直接的影响,所以,必须清楚知道每条语句的执行流程,
并且,我们还需要通过控制语句的执行顺序来实现我们要完成的特定功能

1.2 顺序结构

顺序结构:就是根据编写的程序,从上到下的执行,如:

public static void main(String[] args) {
    //顺序执行:根据编写的程序,自上而下的执行。
    int a = 1;
    int b = 2;    
    int c = a+b;
    System.out.println(c);
}
  • 流程图

在这里插入图片描述

第二章 判断语句

2.1 判断语句—if

  • 语法格式
if(关系表达式){
    语句体;
}
  • 执行流程
  - 1、先判断关系表达式,是true还是false
  - 2、如果是true,执行语句体,如果是false,则不执行

在这里插入图片描述

  • 案例—Demo1_if
public class Demo1_if {
    public static void main(String[] args) {
        System.out.println("准备开始");
        int a = 10;
        int b = 20;
        if (a>b){
            System.out.println("a大于b");
        }
        int c = 10;
        if (a==c){
            System.out.println("a等于c");
        }
        System.out.println("程序执行完毕");
    }
}

2.2 判断语句—if…else

  • 语法格式
if(判断语句){
    执行语句1;
}else{
    执行语句2;
}
  • 执行流程

  • 案例:Demo02_if_else
public class Demo02_if_else {
    public static void main(String[] args) {
        //判断奇偶数
        //键盘输入数据
        int a = new Scanner(System.in).nextInt();
        //判断奇偶数
        if (a%2==0){
            System.out.println(a+":a是偶数");
        }else {
            System.out.println(a+":a是奇数");
        }
    }
}

2.3 判断语句—if…else if … else

  • 语法格式
if(判断条件1){
    执行语句1;
}else if(判断条件2){
    执行语句2
}
...
}else if(判断条件3){
    执行语句n;
}else{
    执行语句m;
}
  • 执行流程
  - 1、首选判断关系表达式1,是否为true,或false
  - 2、如果是true‘,执行语句体1,
  - 3、如果是false,再判断关系式2是否为true。或false
  - 4、如果是truw,执行语句体2
  - 5、...以此类推执行

  • 案例:Demo03_if_elseif_else
public class Demo03_if_elseif_else {
    public static void main(String[] args) {
        //判断成绩大小
        int score = new Scanner(System.in).nextInt();
        if (score>90){
            System.out.println("成绩优秀");
        }else if (score>=80 && score<90){
            System.out.println("成绩好");
        }else if (score>=70 && score<80){
            System.out.println("成绩良好");
        }else if (score>=60 && score<70){
            System.out.println("成绩及格");
        }else {
            System.out.println("不及格,叫家长来");
        }
    }
}

第三章 选择语句

3.1 选择语句–switch

  • switch的语法格式
switch(表达式){
    case 常量值1 : 语句体1;
	break;
	case 常量值2 : 语句体2;
	break;
	case 常量值3 : 语句体3;
	break;
        ...
    default : 语句体n;
    break;
}
  • 执行流程:
  - 1、计算出表达式的值
  - 2、依次和case对应的常量值比较,一旦有对应的值,
	   就执行相应的语句,执行过程中,遇到break结束
  - 3、如果所有的case对应常量值与表达式都不匹配,
       就执行default语句体,然后程序结束

在这里插入图片描述

  • 案例:Demo05_Switch
public class Demo05_Switch {
    public static void main(String[] args) {
        //案例:判断星期几
        int num = new Scanner(System.in).nextInt();
        switch (num){
            case 1: System.out.println("周一");
            break;
            case 2: System.out.println("周二");
            break;
            case 3: System.out.println("周三");
            break;
            case 4: System.out.println("周四");
            break;
            case 5: System.out.println("周五");
            break;
            case 6: System.out.println("周六");
            break;
            case 7: System.out.println("周日");
            break;
            default:System.out.println("输入错误");
            break;//此处break可以省略,推荐保留不省略
        }
    }
}

3.2 case的穿透性

  • switch语句使用的注意事项:
1、多个case后面的常量值不能重复
2、switch小括号中的数据类型:
      基本数据类型:byte、short、int、char
      引用数据类型:字符串,枚举等
3、switch的格式:比较灵活,前后顺序可以颠倒,break可以省略
      匹配到哪个case就从哪个位置向下执行,直到遇到break,或者整体代码结束
  • 案例:Demo06_SwitchNotice
public class Demo06_SwitchNotice {
    public static void main(String[] args) {
        int num = 2;
        switch (num){
            case 1:System.out.println("孙悟空");
            break;
            case 2:System.out.println("猪八戒");
            //break;//没有break,则会穿透后续的case
            case 3:System.out.println("沙和尚");
            break;
            case 4:System.out.println("唐僧");
            break;
            default:System.out.println("西天取经");
            break;
        }
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bLB19BZj-1686187770015)(photo/JavaSE03_流程控制语句.assest/1664099132918.png)]

第四章 循环语句

4.1 循环概述

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

4.2 循环语句–for

  • 语法格式:
for(初始化表达式1;布尔表达式2;步进表达式4){
    循环体3;
}
  • 执行流程
  - 1、执行顺序1234,直到2不满足为止
  - 2、表达式1:负责完成循环变量初始化
  - 3、表达式2:负责判断是否满足循环条件,不满足则跳出循环
  - 4、循环体3:具体执行的代码
  - 5、表达式4:循环后,循环条件所涉及变量的变化情况

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XhQH5KIa-1686187770023)(photo/JavaSE03_流程控制语句.assest/1664101785534.png)]

  • 案例:Demo07_For
public class Demo07_For {
    public static void main(String[] args) {
        System.out.println("程序开始执行");
        for (int i = 1;i<=100;i++){
            //循环体
            System.out.println("我是第:"+i+" 次循环");
        }
        System.out.println("程序执行完毕");
    }
}

4.3 循环语句–while

  • 语法格式
初始化表达式1;
while(布尔表达式2){
    循环体3;
    步进表达式4;
}
  • 执行流程:
  - 1、执行顺序:1234--234--234-,直到2不满足为止
  - 2、初始化表达式1:负责完成循环变量的初始化
  - 3、表达式2:负责判断是否满足条件,不满足则跳出循环
  - 4、循环体3:具体语句的执行
  - 5、步进表达式4:循环后,循环变量的变化情况

在这里插入图片描述

  • 案例:Demo08_While
public class Demo08_While {
    public static void main(String[] args) {
        //扩展格式
        //初始化语句
        int i = 1;
        //判断条件
        while (i<=100){
            //循环体
            System.out.println("我被循环的次数是:"+i);
            //步进语句
            i++;
        }

        //标准化格式
        while (i<=100){//条件判断
            //循环体
            System.out.println("此次循环结束");
        }
    }
}

4.4 循环语句–do…while

  • 格式
初始化表达式1;
do{
   循环体2;
   步进表达式3;
}while(布尔表达式4)
  • 执行流程
  - 1、执行顺序:1234,直到不满足表达式4为止
  - 2、表达式1:负责完成循环变量的初始化
  - 3、循环体2:具体语句的执行
  - 4、表达式3:循环后,循环变量的变化情况
  - 5、表达式4:负责判断是否满足条件,不满足则跳出循环

在这里插入图片描述

  • 案例:Demo09_DoWhile
public class Demo09_DoWhile {
    public static void main(String[] args) {
        //初始条件
        int i = 1;
        do {
            //循环体
            System.out.println("我是do执行的第:"+i+"次");
            //步进语句
            i++;
        }while (i<=20);//判断条件
    }
}

4.5 循环语句的区别

- 1、如果条件判断从不满足,那么for和while执行0次,但是do-while会执行一次
- 2、for循环的变量在小括号中定义,只有循环内部才能使用
- 3、while和do-while的初始化数据本身就在循环的外面

4.6 break和continue用法

  • break语句的用法
- 1、可以使用在switch语句当中,一旦执行,整个switch语句立即结束
- 2、可以使用在循环语句中,一旦执行,整个循环结束
/**
 * break的用法
 *  1、可以使用在switch语句当中,一旦执行,整个switch语句立即结束
 *  2、可以使用在循环语句中,一旦执行,整个循环结束
 */
public class Demo11_Break {
    public static void main(String[] args) {
        for (int i=1;i<10;i++){
            if (i==5){
                break;//若条件满足,那么就会结束循环
            }
            System.out.println("此时循环到的次数是"+i);
        }
    }
}
  • continue 语句的用法
一旦执行,立即跳过当前循环剩余内容,开始下一轮循环
/**
 * continue的用法
 *  一旦执行,立即跳过当前循环剩余内容,开始下一轮循环
 */
public class Demo12_Continue {
    public static void main(String[] args) {
        for (int i=1;i<10;i++){
            if (i==5){
                continue;//表示跳出当前循环,执行下一轮循环
            }
            System.out.println("此时的循环次数是:"+i);
        }
    }
}

第五章 循环语句加强

5.1 死循环

  • 死循环: 就是循环中的条件永远为true,能执行但不会停下来的循环
  • 死循环出现的原因:程序漏洞、程序员刻意操作
/**
 * 死循环:能执行但不会停下来的循环
 *  格式:
 *      while(true){
 *          循环体
 *      }
 */
public class Demo13_SiXunHuan {
    public static void main(String[] args) {
        while (true){
            int a = 10;
            System.out.println(a+=10);//ctrl+c停止运行
        }
    }
}

5.2 嵌套循环

  • 嵌套循环
循环的嵌套是指一个循环的循环体是另一个循环,
比如for循环qiantaofor循环,总循环次数  =  外循环次数*内循环次数
  • 嵌套循环格式:
for(初始化表达式1;循环条件2;步进表达式7){
	for(初始化表达式3;循环条件4;步进表达式6){
        循环体5;
    }    
}
  • 执行流程
  - 执行顺序:123456---456---723456---456
  - 外循环一次,内循环多次
  • 案例:Demo14_NestingFor
/**
 * 嵌套循环
 *  打印5*10的矩形
 */
public class Demo14_NestingFor {
    public static void main(String[] args) {
        //外循环:外循环循环5次
        for (int i=1;i<=5;i++){
            //内循环:内循环在外循环循环1次的基础上,都要进行循环10次
            for (int j=1;j<=10;j++){
                System.out.print("*");
            }
            System.out.println("\n");
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值