Java流程控制语句

news2024/12/24 21:32:50

流程控制语句

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

流程控制语句分类

顺序结构、分支结构(if\switch)、循环结构(for\while\do…while)

顺序结构

顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数代码都是这样执行的。

顺序结构执行流程图:

在这里插入图片描述

分支结构:if 语句

if语句格式1:
if(关系表达式){
	语句体;
}

执行流程:
1、首先计算关系表达式的值
2、如果关系表达式的值为true就执行语句体
3、如果关系表达式的值为false就不执行语句体
4、继续执行后面的语句内容
在这里插入图片描述

public static void main(String[] args) {
        System.out.println("开始");
        //定义两个变量
        int a = 10;
        int b = 20;
        //需求,判断a,b的值是否相等,如果相等,就在控制台输入a等于b
        if(a == b){
            System.out.println("a等于b");
        }
    }
if语句格式2:
if(关系表达式){
	语句体1;
} else {
	语句体2;
}

执行流程:
1、首先计算关系表达式的值
2、如果关系表达式的值为true就执行语句体1
3、如果关系表达式的值为false就执行语句体2
4、继续执行后面的语句内容
在这里插入图片描述

public class ifElseSwitch {
    public static void main(String[] args) {
        System.out.println("开始");
        //定义两个变量
        int a = 10;
        int b = 20;
        b = 5;
        //需求,判断a是否大于b,如果是在控制台输出:a的值大于b,否则,在控制台输出,a的值不大于b
        if(a > b){
            System.out.println("a的值大于b");
        } else {
            System.out.println("a的值不大于b");
        }
        System.out.println("结束!");
    }
}
if语句案例:奇偶数
public  static void ifTest01(){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int i = scanner.nextInt();
        //判断整数是偶数还是奇数要分两种情况进行判断,使用if..else结构
        //判断是否偶数需要使用取余运算符实现该功能number % 2 == 0
        //根据判定情况,在控制台输出对应的内容
        if(i % 2 == 0){
            System.out.println(i + "是偶数!");
        } else {
            System.out.println(i + "是奇数!");
        }
    }
if语句格式3:
if (关系表达式1) {
    语句体1;	
} else if (关系表达式2) {
    语句体2;	
}else {
    语句体n+1;
}

分支结构:switch语句

switch (表达式) {
	case 1:
		语句体1;
		break;
	case 2:
		语句体2;
		break;
	...
	default:
		语句体n+1;
		break;
}

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

switch语句-春夏秋冬

一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。

public class Demo1 {
    public static void main(String[] args) {
        //键盘录入月份数据,使用变量接收
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个月份:");
        int month = sc.nextInt();
        //case穿透
        switch(month) {
            case 1:
            case 2:
            case 12:
                System.out.println("冬季");
                break;
            case 3:
            case 4:
            case 5:
                System.out.println("春季");
                break;
            case 6:
            case 7:
            case 8:
                System.out.println("夏季");
                break;
            case 9:
            case 10:
            case 11:
                System.out.println("秋季");
                break;
            default:
                System.out.println("你输入的月份有误");
        }
    }
}

如果switch中得case,没有对应break的话,则会出现case穿透的现象

循环结构: for循环

for循环结构

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

for (初始化语句;条件判断语句;条件控制语句) {
	循环体语句;
}

初始化语句:用于表示循环开启时的起始状态,简单说就是循环开的时候什么样
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去

在控制台输入1-5和5-1的数据
public static void for01(){
        for (int i = 0; i < 5; i++) {
            System.out.println(i);
        }
        System.out.println("--------");
        for (int i = 5; i >=1; i--) {
            System.out.println(i);
        }
    }
求出1-5之间的数据之和并打印在控制台
public static void for02(){
        int sum = 0;
        for (int i = 0; i < 5; i++) {
            sum += i;
        }
        System.out.println(sum);
    }

求和变量的定义位置,必须在循环外部,如果在循环内部则计算出来的数据将是错误的

求偶数和

求1-100之间的偶数和,并把结果打印

public static void for03(){
        int sum = 0;
        for (int i = 0; i < 100; i++) {
            if(i%2==0){
                sum += i;
            }
        }
        System.out.println(sum);
    }
for循环练习水仙花数

在控制台输出所有”水仙花数“,水仙花数指的是一个三位数,个位,十位,百位的数字立方和等于原数字

 public static void for04(){
        for (int i = 100; i < 1000; i++) {
            //计算三位数中每个位置上的值
            int g = i%10;
            int s = i/10%10;
            int b = i/10/10%10;
            if(g*g*g + s*s*s +b*b*b == i){
                System.out.println(i);
            }
        }
    }

while循环结构

while (条件判断语句) {
	循环体语句;
    条件控制语句;
}

while循环执行流程
1、执行初始化语句
2、执行条件判断语句,看其结果是true还是false,false循环结束,true继续执行
3、执行循环体语句
4、执行条件控制语句
5、回到2继续执行

 public static void whileTest01(){
        //需求:在控制台输出5次helloworld
        for (int i = 0; i < 5; i++) {
            System.out.println("Hello World!");
        }
        System.out.println("-----------");
        int j = 1;
        while (j<=5){
            System.out.println("helloworld!");
            j++;
        }
    }

while循环–珠峰

世界最高山峰是珠峰为8844.43,假如将一张足够大并且厚度为0.1的纸,折叠多少次可以折成珠峰的高度

 public static void while02(){
        int s = 0;
        double p = 0.1;
        int zf = 8844430;
        //因为需要反复折叠,不知道折叠了多少次所以需要使用while循环
        while(p <= zf){
            p *= 2;
            s++;
        }
        System.out.println("需要折叠" + s +"次");
    }
    

do-while循环

初始化语句;
do {
	循环体语句;
	条件控制语句;
}while(条件判断语句);

执行流程
1、执行初始化语句
2、执行循环体语句
3、执行条件控制语句
4、执行条件判断语句,看其结果是true(继续执行)还是false(循环结束)
5、回到2继续执行

public class DoWhileDemo {
    public static void main(String[] args) {
        //需求:在控制台输出5次"HelloWorld"
		//for循环实现
		for(int i=1; i<=5; i++) {
			System.out.println("HelloWorld");
		}
		System.out.println("--------");
		//do...while循环实现
		int j = 1;
		do {
			System.out.println("HelloWorld");
			j++;
		}while(j<=5);
    }
}

三种循环的区别

三种循环的区别

for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

for循环和while的区别

条件控制语句所判断的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能被再次访问到了
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用

死循环(无限循环)的三种格式
1. for(;;){}
2. while(true){}
3. do {} while(true);

跳出控制语句

跳出控制语句(break),跳出循环,结束循环
跳出控制语句(continue),继续下次循环
continue只能在循环中进行使用!

循环嵌套

在循环中,继续定义循环

	public static void main(String[] args) {
        //外循环控制小时的范围,内循环控制分钟的范围
        for (int hour = 0; hour < 24; hour++) {
            for (int minute = 0; minute < 60; minute++) {
                System.out.println(hour + "时" + minute + "分");
            }
            System.out.println("--------");
        }
    }

整个内循环,就是外循环的一个循环体,内部循环体没有执行完毕,外循环是不会继续向下执行的,外循环执行一次,内循环执行一圈

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

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

相关文章

【毕业设计】深度学习社交安全距离检测系统 - python opencv

文章目录0 前言1 课题背景2 实现效果3 相关技术3.1 YOLOV43.2 基于 DeepSort 算法的行人跟踪4 最后0 前言 &#x1f525; Hi&#xff0c;大家好&#xff0c;这里是丹成学长的毕设系列文章&#xff01; &#x1f525; 对毕设有任何疑问都可以问学长哦! 这两年开始&#xff0c…

鲜花商城|基于Springboot实现鲜花商城系统

作者主页&#xff1a;编程千纸鹤 作者简介&#xff1a;Java、前端、Pythone开发多年&#xff0c;做过高程&#xff0c;项目经理&#xff0c;架构师 主要内容&#xff1a;Java项目开发、毕业设计开发、面试技术整理、最新技术分享 收藏点赞不迷路 关注作者有好处 文末获得源码 …

xgboost 为什么拟合残差能获得更好的效果(思考)

以时序预测为例&#xff1a; 现在要 预测2022年之后的值&#xff0c;可以预测下降幅度&#xff08;和预测残差的步骤一样&#xff09;。 假设有一个隐藏的规律&#xff1a;对于21年的高峰&#xff0c;22年的下降幅度会更大&#xff08;如time3是&#xff0c;下降幅度会比其他的…

Spring依赖注入源码解析(下)

文章目录前言本章目标resolveDependency—解决依赖查找1、doResolveDependency2、Autowreid寻找依赖流程图依赖注入完整流程图前言 在上一篇文章Spring依赖注入源码解析&#xff08;上&#xff09;中&#xff0c;主要介绍了寻找注入点、以及注入源码分析 本章目标 这一篇主要…

市面上最适合跑步用的耳机有哪些、分享五款最优秀的跑步耳机

随着人们日益对健康的重视&#xff0c;”全民健身“正在全国&#xff0c;乃至全世界蔓延开来&#xff0c;其中跑步锻炼凭借着门槛低&#xff0c;益处多成为了大部分人的健身的首选。而随着跑步大军的壮大&#xff0c;国内蓝牙耳机市场也是一片火热。其中蓝牙无线运动耳机凭借着…

【python小项目】用python写一个小工具——番茄钟

用python写一个小工具——番茄钟 最近听到朋友说在用番茄钟&#xff0c;有点兴趣也想下载一个来用用&#xff0c;后面仔细一想这玩意做起来也不难&#xff0c;索性自己顺手写一个算了&#xff0c;在这里也分享给大家了 一、功能简述 番茄钟即番茄工作法&#xff0c;番茄工作法…

产品经理必备的能力有哪些?

从一名普通的产品经理到一名优秀的产品经理要经历什么&#xff1f;哪些又是产品经理必备的能力&#xff1f;产品经理对能力的需求也不尽相同&#xff0c;在不同的团队合作模式下&#xff0c;还必须懂得各种能力。 一、业务分析能力 数据分析能力该是什么样的呢 1、有数据意识…

indexDB 本地数据库

indexDB 本地数据库 IndexedDB是一种使用浏览器存储大量数据的方法&#xff0c;它创造的数据可以被查询&#xff0c;并且可以离线使用。 优点&#xff1a;空间大小&#xff0c;大于250M&#xff1b;支持二进制&#xff1a;IndexedDB不但可以存储对象&#xff0c;字符串等&#…

利用MS11_003 IE漏洞攻击win7主机

利用MS11_003 IE漏洞攻击win7主机 微软2011年2月9日发布12个安全补丁,其中3个最高级别为严重等级,9个为重要等级,共计修复了影响 Windows、Office、IE 和 IIS 的22个漏洞。 MS11-003、MS11-006 和 MS11-007 为严重等级,需要优先部署。其中,MS11-003 的最高利用指数为1它修…

基于web的课程管理系统设计与实现(java+SqlServer)

目 录 摘 要 I Abstract II 1 绪论 1 1.1 课题背景 1 1.2 本课题研究的意义 2 1.3 主要研究内容 3 2 开发环境与相关技术 4 2.1 JSP技术 4 2.1.1 JAVA简介 4 2.1.2 JSP简介 4 2.1.3 SSH2框架介绍 5 2.2 Myeclipse介绍 6 2.3 SQL2008 数据库 7 2.4 Browser/Server&#xff08;B…

GD32实现串口空闲(IDLE)中断 + DMA机制接收数据

前言 串口功能在单片机开发中&#xff0c;是比较常用的外设&#xff0c;熟练使用串口功能也是驱动开发必备的技能之一。 DMA是一种CPU辅助手段&#xff0c;可以在CPU不参与的情况下&#xff0c;是做一些辅助CPU的事情&#xff0c;如通常的数据搬运。 在没有DMA之前&#xff0c;…

hadoop3.x学习(一)--安装与环境配置

一、hadoop的组成 hadoop1.x&#xff1a;Commons、HDFS&#xff08;数据存储&#xff09;、MapReduce&#xff08;资源调度计算&#xff09;hadoop2.x:Commons、HDFS&#xff08;数据存储&#xff09;、MapReduce&#xff08;计算&#xff09;、Yarn(资源调度) 1.1 HDFS 分布式…

【电商项目实战】个人资料(详细篇)

&#x1f341;博客主页&#xff1a;&#x1f449;不会压弯的小飞侠 ✨欢迎关注&#xff1a;&#x1f449;点赞&#x1f44d;收藏⭐留言✒ ✨系列专栏&#xff1a;&#x1f449;SpringBoot电商项目实战 ✨学习社区&#xff1a; &#x1f449;不会压弯的小飞侠 ✨知足上进&#x…

Linear Model 线性模型

文章目录1、Linear Model 线性模型1.1 问题引入1.2 选择模型1.3 损失 Loss1.4 均方误差 MSE1.5 代码1.6 更换模型1、Linear Model 线性模型 B站视频教程传送门&#xff1a;PyTorch深度学习实践 - 线性模型 1.1 问题引入 假设学生在期末考试中得到y分&#xff0c;如果他们花了…

【正点原子FPGA连载】第二十五章 双路高速AD实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十五章 双路…

干货 | 读懂这篇文,玩游戏还会卡顿?

玩游戏的时候最怕的就是卡顿。排位赛的紧急关头&#xff0c;明明马上就能上一段位&#xff0c;却因为卡顿导致给对方送人头。还把对手送上了王者。引起队友骂声一片。作为测试工程师的你&#xff0c;可以忍&#xff1f; 卡顿测试也是专项测试里的一种&#xff0c;更多精彩测试内…

【学习笔记】深度学习入门:基于Python的理论与实现-Python入门与感知机

CONTENTS一、Python入门1.1 NumPy1.2 Matplotlib二、感知机2.1 感知机是什么2.2 简单逻辑电路2.3 感知机的实现2.4 感知机的局限性2.5 多层感知机一、Python入门 1.1 NumPy 在深度学习的实现中&#xff0c;经常出现数组和矩阵的计算。NumPy的数组类&#xff08;numpy.array&a…

C语言函数调用的过程图解深入剖析

希望是美好的&#xff0c;也许是人间至善&#xff0c;而美好的事物永不消逝。——《肖申克的救赎》 目录 1、什么是函数栈帧&#xff1f; 2、理解函数栈帧能解决什么问题 3、函数栈帧是什么 3.1什么是栈&#xff1f; 3.2认识寄存器和汇编指令 4、函数调用的整个过程 5、…

LBA逻辑区块地址

现在很多硬盘采用同密度盘片&#xff0c;意味着内外磁道上的扇区数量不同&#xff0c;扇区数量增加&#xff0c;容量增加&#xff0c;3D很难定位寻址&#xff0c;出现了新的寻址模式&#xff1a;LBA(Logical Block Addressing)。在LBA地址中&#xff0c;地址不再表示实际硬盘的…

Mysql 并发多版本控制MVCC

什么是MVCC MVCC&#xff0c;全称Multi-Version Concurrency Control&#xff0c;即多版本并发控制。MVCC是一种并发控制的方法&#xff0c;一般在数据库管理系统中&#xff0c;实现对数据库的并发访问&#xff0c;在编程语言中实现事务内存。 一般情况下我们使用mysql数据库的…