JavaSE03_流程控制语句

news2024/12/24 8:26:09

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);
}
  • 流程图
1664091668815

第二章 判断语句

2.1 判断语句—if

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

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

  • 案例—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;
}
  • 执行流程
1664092027074
  • 案例: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、…以此类推执行
1664093546247
  • 案例: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("不及格,叫家长来");
        }
    }
}

2.4 if语句和三元运算符

在谋陷简单的应用中,if语可以代替三元运算符使用

public class Demo04 {
    public static void main(String[] args) {
        //三元运算符实现
        int a = 44;
        int b = 33;
        int num1 = a>b?a:b;
        System.out.println(num1);

        //if-else实现
        int m = 200;
        int n = 100;
        int num2;
        if (m>n){
            num2 = m;
        }else {
            num2 = n;
        }
        System.out.println(num2);
    } 
}

第三章 选择语句

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语句体,然后程序结束
    1664094864146
  • 案例: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:循环后,循环变量的变化情况

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

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

  • 案例: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:负责判断是否满足条件,不满足则跳出循环

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

  • 案例: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语句的用法

  • 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 语句的用法

  • 1、一旦执行,立即跳过当前循环剩余内容,开始下一轮循环
/**
 * 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");
        }
    }
}
  • 1、使用嵌套for循环打印一个 正三角
  • 2、打印一个直角三角形(倒着)
  • 3、打印99乘法表

行的流程

  • 执行顺序: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");
        }
    }
}
  • 1、使用嵌套for循环打印一个 正三角
  • 2、打印一个直角三角形(倒着)
  • 3、打印99乘法表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/622704.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】Python系列教程-- Python3 命名空间和作用域(二十九)

文章目录 前言作用域全局变量和局部变量global 和 nonlocal关键字 前言 往期回顾&#xff1a; Python系列教程–Python3介绍&#xff08;一&#xff09;Python系列教程–Python3 环境搭建&#xff08;二&#xff09;Python系列教程–Python3 VScode&#xff08;三&#xff09…

Vue.js 中的 v-bind 和 v-on 简写

Vue.js 中的 v-bind 和 v-on 简写 在 Vue.js 中&#xff0c;v-bind 和 v-on 是两个常用的指令&#xff0c;用于绑定属性和事件。在本文中&#xff0c;我们将介绍 v-bind 和 v-on 的简写形式&#xff0c;以及如何使用它们。 v-bind 简写形式 在 Vue.js 中&#xff0c;v-bind 用…

Java 进阶—死锁造成原因及其解决

今天我们来了解一下线程死锁&#xff0c;死锁很好理解&#xff0c;从字面上来看就是锁死了&#xff0c;解不开&#xff0c;在大街上看到一对卧龙凤雏的情侣&#xff0c;怎么说&#xff0c;你们给我锁死&#xff0c;不要分开去霍霍别人 之前我们不是说过&#xff0c;解决线程安…

GoogleTest之创建Mock

目录 MOCK_METHODmock方法的访问属性mock非虚函数mock自由函数Nice/Strict/Naggymock方法简化参数mock具体类的替代方法代理给fake mock是用来模拟对象&#xff0c;隔离边界的一种测试方法&#xff0c;以便在开发阶段不需要依赖第三方或其他依赖项可以进行独立的测试。 MOCK_ME…

MySQL调优系列(六)——查询优化

一、查询慢的原因 查询速率受网络、CPU、IO、上下文切换、系统调用、生成统计信息、锁等待时间等因素影响。 举个常见面试题&#xff1a; 一个表非常非常大&#xff0c;上亿级别的数据&#xff0c;性能会变慢嘛&#xff1f;如果表有索引 答&#xff1a;增删改会变慢。&#xf…

Python可视化分析项目高分课设

今天给大家分享一个基于python的django框架结合爬虫以及数据可视化和数据库的项目&#xff0c;该项目总体来说还是挺不错的&#xff0c;下面针对这个项目做具体介绍。 1&#xff1a;项目涉及技术&#xff1a; 项目后端语言&#xff1a;python 项目页面布局展现&#xff1a;前…

数据结构--队列

文章目录 队列基础队列的实现链表实现环形数组实现tail一直加的问题容量处理 队列的使用 队列基础 queue 是以顺序的方式维护的一组数据集合 相对于链表来说&#xff0c;队列操作数据的位置是固定的只能2端操作。 在一端添加数据&#xff0c;从另一端移除数据。习惯来说&#…

高完整性系统(3):Threat Modelling

文章目录 基础安全性质保密性&#xff08;Confidentiality&#xff09;完整性&#xff08;Integrity&#xff09;可用性&#xff08;Availability&#xff09;认证&#xff08;Authentication&#xff09;不可抵赖性&#xff08;Non-repudiation&#xff09;访问控制&#xff0…

从开源软件看动态内存分配

动态内存分配 我们通常在C里面动态分配内存&#xff0c;会写出下面这样的代码&#xff1a; struct header {size_t len;unsigned char *data; }; 随后为data malloc一段内存出来&#xff0c;那么还有其他办法吗&#xff1f; 那便是弹性数组&#xff01;在阐述本节之前&#xff…

数据安全有隐患?金仓数据60秒邀你闯关破题赢奖品

数字时代 数据成为宝贵资产 数据的安全 更是关乎行业可持续发展 关乎社会的稳定和国家战略 数据库作为 数据安全的首要防线 如何纵深防御 保障数据安全合规 满足新应用新场景下的安全防护要求 金仓数据60秒 发布多个视频为您详细剖析 同时&#xff0c;小编发起“闯关挑战”活动…

【Linux】14. 文件缓冲区

1. 文件缓冲区的引出 如上现象&#xff0c;在学习完文件缓冲区之后即可解释 2. 认识缓冲区 缓冲区的本质就是内存当中的一部分&#xff0c;那么是谁向内存申请的&#xff1f; 是属于谁的&#xff1f; 为什么要存在缓冲区呢&#xff1f; 道理是如此&#xff0c;在之前的学习过…

基于matlab仿真带有飞机的虚拟场景

一、前言 此示例演示如何通过 MATLAB接口使用空间鼠标。 开始此示例后&#xff0c;带有飞机的虚拟场景将显示在 Simulink 3D 动画查看器中。您可以使用空格鼠标在场景中导航平面。通过按下设备按钮 1&#xff0c;您可以在当前平面位置放置标记。 此示例需要空间鼠标或其他兼容设…

Neuralangelo AI - 视频生成3D模型

NVIDIA Research 宣布了 Neuralangelo&#xff0c;这是一种创新的 AI 模型&#xff0c;它利用神经网络的力量从 2D 视频剪辑中重建详细的 3D 结构。 Neuralangelo 能够生成逼真的建筑物、雕塑和其他现实世界物体的虚拟复制品&#xff0c;展示了 AI 在 3D 重建领域的非凡潜力。…

十个国内可用的智能AI模型

AI语言模型&#xff0c;就是一种利用机器学习和自然语言处理技术进行文本生成的算法。其基于大量已有的语料库进行训练&#xff0c;建立出一个能够理解自然语言规律和特征的语言模型。对于输入的文本、任务和目标&#xff0c;AI语言模型可以快速生成对应的结果。 在实际应用中&…

Flume入门监控端口数据官方案例

Flume安装部署 相关地址 Flume官网地址&#xff1a;http://flume.apache.org/文档查看地址&#xff1a;http://flume.apache.org/FlumeUserGuide.html下载地址&#xff1a;http://archive.apache.org/dist/flume/ 安装 将apache-flume-1.9.0-bin.tar.gz上传到linux的/opt/s…

责任链模式的学习与使用

1、责任链模式的学习 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许你将请求沿着处理链进行传递&#xff0c;直到有一个处理者能够处理该请求。责任链模式将请求的发送者和接收者解耦&#xff0c;使多个对象都有机…

计算机网络通信过程

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

案例|某城商行Zabbix 监控架构分享

编者荐语&#xff1a; 东莞银行董天保将出席7月份Zabbix大会分享案例经验&#xff0c;欢迎参加&#xff01; 以下文章来源于有田菜也香 &#xff0c;作者AcidGo 东莞银行董天保先生将于7月份参加Zabbix大会分享使用经验&#xff0c;欢迎扫码参加&#xff01; 【导读】某银行…

openCV(三)绘制几何图形

openCV内置了几何图形绘制函数&#xff0c;通过简单的操作就可以绘制几何图形。例如&#xff0c;可以绘制直线、矩形、圆形、椭圆、多边形、文字等&#xff0c;分别对应函数cv2.line()、cv2.rectangle()、cv2.circle()、cv2.ellipse()、cv2.polylines()、cv2.putText()。 下面来…

Mysql进阶【3】论述Mysql优化

1.通过explain查看sql的详细信息 Mysql的sql优化企业里边主要是对慢sql进行优化&#xff0c;对语句进行优化&#xff0c;对索引进行优化 通过explain查看sql的详细信息&#xff0c;并且分析sql语句存在的问题&#xff0c;比如有没有使用到索引、使用了索引还是慢是不是索引设…