【Java编程进阶】流程控制结构详解

news2025/1/16 13:45:12

在这里插入图片描述

推荐学习专栏:Java 编程进阶之路【从入门到精通】


文章目录

  • 1. 流程控制结构
  • 2. 顺序结构
  • 3. 分支结构
    • 3.1 单分支
    • 3.2 双分支
    • 3.3 多分支 (if-else)
    • 3.4 嵌套 if
    • 3.5 多分支结构 (switch)
  • 4. 循环结构
    • 4.1 for 循环
    • 4.2 while 循环
    • 4.3 do...while循环
  • 5. 流程跳转
    • 5.1 break
    • 5.2 continue
    • 5.3 return


1. 流程控制结构

在这里插入图片描述
程序流程控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。程序可以通过控制语句来对程序实现选择、循环、转向和返回等流程控制。

程序控制结构包括:顺序结构、分支结构、循环结构。

2. 顺序结构

顾名思义,顺序结构就是程序按照从上到下的顺序执行,程序中的语句只能被执行一次。

在这里插入图片描述
示例:

public class Test{
    public static void main(String[] args){
        System.out.println("Hello");
        System.out.println("World");
    }
}

/**
 * 运行结果
 * Hello
 * World
 */

在 Java 程序中,JVM 默认总是顺序执行以分号 ; 结束的语句。但是,在实际的代码中,程序经常需要做条件判断,循环等,因此,需要有多种流程控制语句,来实现程序的跳转和循环等功能。

3. 分支结构

和顺序结构不同的是,分支结构可以在执行的过程中进行判断。当程序执行到控制分支的语句时,首先判断条件,根据条件表达式的值选择相应的语句执行(放弃另一部分语句的执行)。

分支结构包括单分支,双分支和多分支三种形式。

3.1 单分支

语法:

if(布尔表达式){语句块;} 

在这里插入图片描述

只有布尔表达式的值为 true 时,才会继续执行 if 语句块的内容。

示例:

public class Test {
    public static void main(String[] args) {
        int score=59;
        if(score>=60)
            System.out.println("考试及格!");
    }
}

3.2 双分支

语法:

if(布尔表达式){ 
    语句块;//if分支 
}else{ 
    语句块;//else分支 
}

在这里插入图片描述当条件表达式的值为真时,执行代码段1,否则执行代码段2。

示例:


public class Test {
    public static void main(String[] args) {
        int score=59;
        if(score>=60)
            System.out.println("考试及格!");
        else 
            System.out.println("考试不及格!");
    }
}

3.3 多分支 (if-else)

语法:

if(布尔表达式){ 
    语句块; 
}else if(布尔表达式){ 
    语句块; 
}else{ 
    语句块; 
}

在这里插入图片描述
示例:

public class Test {
    public static void main(String[] args) {
        int score=80;
        if(score<60)
            System.out.println("考试不及格!");
        else if(score<80)
            System.out.println("考试及格!");
        else
            System.out.println("考试优秀!");
    }
}

3.4 嵌套 if

什么时候会用到嵌套 if 语句来实现分支结构呢?例如,学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,根据性别分别进入男子组和女子组。此时,首先判断是否在十秒内,如果是,再判断是男生还是女生,否则,没有进入决赛。

语法:

   if(布尔表达式1){
            if(布尔表达式2){
                语句1;
            }else{
                语句2;
            }
        }else{
            语句3;
        }

示例:

public class Test {
    public static void main(String[] args) {
        int score=59;
        if(score>=60){
            if(score<80)
                System.out.println("考试及格!");
            else
                System.out.println("考试优秀!");
        }
        else
            System.out.println("考试不及格!");
    }
}

3.5 多分支结构 (switch)

语法:

 switch (表达式) {
    case1:
        语句;
        break;
    case2:
        语句;
        break;
    default:
        语句;
        break;
 }

在这里插入图片描述多分支结构用于多种选择的情况,根据输入的情况,与 case 值后面的常量比较,如果相等,则执行后面的代码段,此时一定要记得加上 break 语句跳出 switch 语句,否则将会执行下一个情况的代码段,直到遇到 break 语句。

示例:

public class Test {
    public static void main(String[] args) {
        int num = 5;
        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("输入有误!");
        }
    }
}

4. 循环结构

当程序执行到循环控制语句时,根据循环判定条件对一组语句重复执行多次。循环结构的三个要素分别是循环变量,循环体和循环终止条件。

我们把循环结构分为三种,分别是 for 循环,while 循环和 do…while 循环。接下来,我们分别来学习者三种循环结构。

4.1 for 循环

语法:

for(表达式1;表达式2;表达式3) { 
    循环体; //一条或多条语句 
}

在这里插入图片描述
示例:打印三行 HelloWorld!

public class Test {
    public static void main(String[] args) {
        for(int i=0;i<3;i++)
        System.out.println("HelloWorld!");
    }
}
/**
 * 运行结果
 * HelloWorld!
 * HelloWorld!
 * HelloWorld!
 */

4.2 while 循环

语法:

while(布尔表达式){ 
循环体; //一条或多条语句 
}

while 循环的逻辑和 for 循环相同,如果布尔表达式的值为真则执行循环体,否则结束循环。

示例:打印三行 HelloWorld!

public class Test {
    public static void main(String[] args) {
        int i=0;
        while(i<3){
            System.out.println("HelloWorld!");
            i++;
        }
    }
}

4.3 do…while循环

语法:

do { 
   循环体; 
}while(条件判断表达式);

可以看到,和 while 循环不同的是,do…while 循环要先执行一次代码段,然后再进行条件的判断,如下图:

在这里插入图片描述
示例:打印三行 HelloWorld!

public class Test {
    public static void main(String[] args) {
        int i=0;
        do{
            System.out.println("HelloWorld!");
            i++;
        }while(i<3);
    }
}

5. 流程跳转

在流程跳转部分主要讲解的是 break 语句,continue 语句和 return 语句。我们先看一看结论:

  • break 用于 do-while,while,for,switch中时,可跳出循环而执行循环后面的语句
  • continue 用在循环中,跳过本次循环,执行下一次循环
  • return 并非专门用于结束循环,它的功能是结束一个方法

5.1 break

示例:

public class Test {
    public static void main(String args[]) {
        for (int i = 0; i < 10; i++) {
            if (i == 3)
                break;
            System.out.println(" i = " + i);
        }
        System.out.println("break用于跳出循环结构继而执行循环后面的语句!");
    }
}

break 语句用于跳出 for ,while 等循环结构,继而执行循环后面的语句。

5.2 continue

示例:

public class Test {
    public static void main(String args[]) {
        for (int i = 0; i < 10; i++) {
            if (i == 3)
                continue;
            System.out.println(" i = " + i);
        }
    }
}

continue 用于多层嵌套的循环结构,且只能用于循环结构。目的是跳出当前的循环执行下一次循环。例如上面的例子,打印 10 以内的整数且不包括数字 3 。

5.3 return

示例:

public class Test {
    public static void main(String args[]) {
        for (int i = 1; i <= 10; i++) {
            for (int j = 1; j <= 10; j++) {
                if (i + j == 15) {
                    return;
                }
                System.out.println("i = " + i + ",j = " + j + ",i + j = " + (i + j));
            }
        }

与 break 和 continue 不同的是,return 直接结束整个方法,不管这个 return 处于多少层循环之内。所以上面的例子中,当程序执行到 i = 5,j = 10 时,跳出整个方法,程序结束执行。


在这里插入图片描述

欢迎订阅学习Java编程进阶之路专栏,专栏文章持续更新!

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

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

相关文章

【数据结构】优先级队列(堆)

成功就是失败到失败&#xff0c;也丝毫不减当初的热情 目录 1.理解优先级队列 2.优先级队列的底层 2.1 认识堆 2.1.1 堆的概念 2.2.2 堆的存储 2.2 堆的创建 2.2.1 向下调整算法 2.2.2 堆的创建 2.3 堆的插入 2.4 堆的删除 2.5 查看堆顶元素 2.6 堆的运用 3…

windows 11 安装jdk1.8

1.先去JDK官网下载 JDK1.8官网 2.进入到官网之后 3. 点击上图windows选项       按照你的电脑是32位还是64位按需下载(我电脑是64位) 4. 点击下载之后就会跳转到Oracle账号登录界面&#xff08;没有Oracle账号的注册一下这边我就省略了注册了&#xff09; 5.把下载好的…

商业智能BI财务分析,如何从财务指标定位到业务问题

商业智能BI开发人员都会思考如何从财务指标定位到业务问题&#xff0c;就是做了很多的商业智能BI开发&#xff0c;每次也都涉及到了财务分析&#xff0c;各种财务能力指标&#xff0c;各种可视化的分析图表。但是不知道这些财务指标到底能够反映出企业的什么问题&#xff0c;和…

蓝桥杯Python练习题3-十六进制转八进制

资源限制 内存限制&#xff1a;512.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 给定n个十六进制正整数&#xff0c;输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n &#xff08;1<n<10&am…

Weston 纹理倒置(render-gl)

纹理倒置 背景 在 render-gl 接入 frame buffer object 实现 off-screen 渲染后,发现得到的渲染图发生了180的倒置. 查阅了有关资料后,在 eglspec.1.5 中的 2.2.2.1 Native Surface Coordinate Systems 找到了答案: The coordinate system for native windows and pixmaps …

2023届毕业生职场第一步:挡飞刀

这篇博客不会教你某一段代码怎么写&#xff0c;某一个知识点怎么入门&#xff0c;但却可以让你在2023年的职场上&#xff0c;躲避飞刀。 目录 1、啥是挡飞刀 2、其他知名大厂也好不到哪里去 3、 毕业生如何躲飞刀&#xff1f; 4、毕业生首选什么样的公司 5、不建议去这样的…

工具学习——ubuntu轻量桌面对比

因为最近要做一些ubuntu上的开发&#xff0c;然后使用ssh问题是经常会出现中断&#xff0c;虽然可以使用等tmux方法来挂起进程&#xff0c;但是感觉不如界面方便&#xff0c;然后现在问题来了&#xff0c;我的ubuntu服务器是一个双核的性能很差内存也少的机器&#xff0c;我怎么…

13-Golang中for循环的用法

Golang中for循环的用法for循环基本语法for循环流程图注意事项和使用细节for循环 就是让一段代码循环的执行。 基本语法 for循环变量初始化&#xff1b;循环条件&#xff1b;循环变量迭代{循环操作(语句)}package main import "fmt"func main(){for i : 1; i < …

C#,谷歌(Google)CityHash64与CityHash128散列哈希算法的C#源程序

1、CityHash简史 Google 2011年发布了 CityHash 系列字符串散列算法 。今天发布的有两种算法&#xff1a;CityHash64 与 CityHash128 。它们分别根据字串计算 64 和 128 位的散列值。这些算法不适用于加密&#xff0c;但适合用在散列表等处。 Google 一直在根据其数据中心常…

“刀片嗓”“水泥鼻”“咳出肺”可以这样缓解!

很多人感染新冠后&#xff0c;咽痛、鼻塞、干咳和其他不适&#xff0c;非常不舒服&#xff0c;在网上讨论也总结了“刀片嗓”、“水泥鼻”、“咳出肺”三个字生动地展现了他们的不适。今天&#xff0c;对于这三种症状&#xff0c;今天就为大家带来一些缓解的小方法。 病症一&am…

机器学习中的评价指标

1.MSE&#xff08;mean squared error&#xff09; 叫做均方误差&#xff0c;又称L2损失。取平方有一个特性&#xff0c;它惩罚更大的错误更多&#xff08;毕竟都取平方了&#xff09;。方差一般用来计算样本的离散程度&#xff0c;而均方误差则可以用做衡量模型拟合的一个度量…

Linux串口编程详解(阻塞模式、非阻塞模式、select函数)

前言&#xff1a;之前一直觉得串口编程很简单&#xff0c;这两天仔细研究后发现串口里的各种参数还挺复杂&#xff0c;稍不注意就容易出错&#xff0c;这里总结一下网上的各种文章及自己的理解与实践。 open 函数 功能描述&#xff1a;用于打开或创建文件&#xff0c;成功则返…

【05】概率图表示之马尔可夫随机场

概率图表示之马尔可夫随机场 文章目录马尔可夫随机场正式定义与贝叶斯网络的比较马尔可夫随机场中的独立性条件随机场示例正式定义示例&#xff08;续&#xff09;CRF特性因子图贝叶斯网络可以以一种紧凑的方式表示许多概率分布。然而&#xff0c;我们在前一章中已经看到&…

笔试强训(8)

笔试题1:密码强度等级密码强度等级_牛客题霸_牛客网 在这个题中: 1)统计密码的长度直接通过length()来进行解决 2)统计大写字母和小写字母的个数分别在函数里面定义两个变量来进行解决 3)统计数字和富豪也是分别用两个变量来进行保存 import java.util.Scanner;// 注意类名必须…

记一次 Maven 打包后,第三方无法使用的排查记录

你好&#xff0c;我是悟空。 本文主要内容如下&#xff1a; 前言 最近遇到一个需求&#xff1a; 写一个工具类的 JAR 包&#xff0c;然后提供给第三方使用。 期间遇到了一些问题&#xff1a; 第三方引入 JAR 包后&#xff0c;无法 import。第三方引入 JAR 包后&#xff0c…

你可以不看世界杯,但你一定要知道这些

2022卡塔尔世界杯&#xff0c;阿根廷夺冠&#xff0c;举世沸腾。 ​夺冠之路&#xff0c;遍布荆棘 时隔36年&#xff0c;阿根廷再次夺得大力神杯&#xff0c;回望夺冠之路&#xff0c;坎坷遍布&#xff0c;荆棘丛生。 2006年夏天&#xff0c;梅西第一次参加世界杯。时任阿根廷…

Mybatis源码(一)获取数据源

前言 Mybatis做为一种半ORM框架&#xff08;半&#xff1a;需要手动写sql&#xff09;。ORM&#xff08;Object Relational Mapping&#xff09;的技术本质是&#xff1a;ORM框架将对象的值 映射到 对应数据库类型&#xff1a; 如 String -> varchar。 且mybatis分为两种实…

数字孪生核电站促进界面监测的应用实践

未来核电站将向着数字化、智能化发展,“少人值守、智能监测”会广泛应用于核电站运行管理。利用数字孪生技术,可以对实体核电站和孪生核电站的数据进行交换分析,促进核电站的运行管理和监测,更好地确保反应堆运行安全。 数字孪生核电站促进界面监测的应用实践 北京智汇云舟科技…

h5中使用微信分享

1.需要 绑定域名&#xff1a; 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”&#xff08;即访问前端项目对应的域名)。 2.在项目中引入sdk: 在需要调用 JS 接口的页面引入如下 JS 文件&#xff0c;&#xff08;支持https&#xff09;&#xff…

搭vue项目(初级版)

这个项目只有 会员管理和直播管理两个模块。创建两个模块是为了验证一下路由跳转。 下载项目&#xff1a; 可以到我的资源中下载压缩包 或者 git clone 前端项目搭建: 前端搭建的项目&#xff0c;仅供学习使用 1.安装vue-cli,全局只需要安装一次&#xff0c;如果安装过一次&am…