【Java|基础篇】逻辑控制-顺序结构、分支结构和循环结构
文章目录
- 顺序结构
- 分支结构
- if单分支语句
- if else双分支语句
- if else if else多分支语句
- switch语句
- 循环语句
- for循环
- while循环
- do while循环
- continue
- break
- 总结
顺序结构
顺序结构是指代码按照从上往下的顺序依次执行
分支结构
选择语句是条件成立时,才会执行的语句.共有三种.分为是if ,if else和if else if else
if单分支语句
// 语法
if (条件语句){条件为true时 执行的代码
}
注:如果if里面只有一条要执行的语句的话,{} 可以不加,但建议还是加上去.
if 单分支语句执行流程图
示例:
public static void main(String[] args) {System.out.println("成绩等级评测");int a = 61;if (a >= 60){System.out.println("成绩及格");}System.out.println("评测完毕");
}
/*
输出结果:
成绩等级评测
a的成绩及格
评测完毕
*/
if else双分支语句
// 语法:
if (条件语句){条件判断为true时 执行的代码
}else {条件判断为false时 执行的代码
}
if else双分支语句的执行流程:
示例:
public static void main(String[] args) {System.out.println("成绩等级评测");int a = 61;if (a >= 60){System.out.println("成绩及格");}else{System.out.println("成绩为不合格");}System.out.println("评测完毕");
}
/*
输出结果:
成绩等级评测
a的成绩及格
评测完毕
*/
可以看到else里面的语句并没有被执行,是因为满足了if的条件判断语句,所以执行了if里面的语句.else语句只有在if条件语句不满足时才会执行,
if else if else多分支语句
// 语法:
if (条件语句1){条件为true时 执行的代码
}else if(条件语句2){条件为true时 执行的代码
}else if(条件语句3){条件为true时 执行的代码//else if语句可以有多个,此处只列出了两个
}else{以上条件均不满足时,执行此处的代码
}
if else if else多分支语句的执行流程
还是刚才的示例,如果再细分一下,分数[0,60)为不合格,[60,75)为合格,[75,90)为良好,[90,100]为优秀.那么此时单分支和双分支就不合适了.这是就要使用多分支语句了.
示例:
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入你的分数:");int a = scanner.nextInt();System.out.println("成绩等级评测");if (a < 60){System.out.println("成绩不及格");}else if(a < 75){System.out.println("成绩及格");}else if (a < 90) {System.out.println("成绩良好");}else{System.out.println("成绩优秀");}System.out.println("评测完毕");
}
注:此处的写法有很多.我这里的写法也不一定是最好的.
此时就可以进行输入分数进行评测了.来看演示结果:
这里的结果为"成绩良好"说明进入到了第二else if语句,因为if语句和else if中的条件语句均不满足, 虽然写着是a < 90,但实际上表示的是a >=75 && a < 90
,这里需要注意
if else if else 里面是可以相互嵌套的,但是最好不要嵌套的过多,可读性不好
switch语句
switch (表达式){case 常量值1:执行的代码break;case 常量值2:执行的代码break;case 常量值3:执行的代码break;...default: // 其它的情况执行的代码
}
执行流程
:
- 先计算表达式的值
- 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束
- 当表达式的值没有与所列项匹配时,执行default
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int day = scanner.nextInt();switch (day){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("输入错误!");}}
注意:
多个case后的常量值不可以重复
switch 不能表达复杂的条件
break 不要遗漏, 否则会失去 "多分支选择" 的效果
default与else类似,都是前面条件都不满足时执行
switch中的最后一个语句可以不加break
运行结果:
如果没有break,它就会在满足的条件的地方继续往后面执行,直到遇到break或者执行完后面所有代码
循环语句
循环语句有for循环,while循环和do while循环
在循环中会有三个表达式:
- 表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
- 表达式2: 循环条件,满则循环继续,否则循环结束
- 表达式3: 循环变量更新方式
下面会对这些内容一一介绍
for循环
// 语法
for(表达式1;布尔表达式2;表达式3){循环语句;
}
for循环的执行流程图:
举个简单的例子,打印从1到5的数字:
public static void main(String[] args) {for (int i = 0; i < 5; i++) {System.out.println(i+1);}}// 输出结果为 1~5
这里的写法有很多.
i是从0开始的,第一次i等于0,对i进行判断,小于5.执行循环体.然后执行i++.继续i进行判断.然后循环往复.直到i>=5.不满足条件.循环结束
大家只要掌握一种循环,学习另外两种循环就很容易了.
while循环
// 语法
while(循环条件){循环语句
}
// 如果循环条件true,就会执行循环语句.
// 循环条件为false时,结束循环
在while循环中,表达式1一般写在while循环的前面,而表达式3写在循环语句中.
do while循环
// 语法
do{循环语句;
}while(循环条件);
与while循环中相同,表达式1一般写在do的前面,而表达式3写在循环语句中.
continue
continue的作用: 跳过本次循环,直接进入下一次循环
如果我想要打印[0,100)之间所有的奇数,用continue就可以这样写
public static void main(String[] args) {for (int i = 0; i < 100; i++) {if (i % 2 == 0){continue;}else {System.out.println(i);}}}
如果i对2取余结果等于0,说明是偶数,则用continue跳过本次循环.否则就打印i的值
break
break的作用: 结束当前循环
例如:如果要判断arr数组中是否有偶数,如果不是偶数,就打印数组对应下标的值.如果是偶数,则结束循环
代码:
public static void main(String[] args) {int[] arr = {1,3,5,6,7,9};for (int i = 0; i < arr.length; i++) {if (arr[i] % 2 == 0){System.out.println("arr中有偶数!");break;}System.out.print(arr[i]+" ");}}// 输出结果:// 1 3 5 arr中有偶数!
在arr[i]等于6时,for循环里面的if语句的条件成立,就会打印arr中有偶数!执行break退出循环
总结
本篇文章主要讲解了顺序结构,逻辑结构和循环结构.还有continue和break这两个关键字.
思维导图如下:
感谢你的观看!希望这篇文章能帮到你!
Java专栏在不断更新中,欢迎订阅!
“愿与君共勉,携手共进!”
相关文章:
【Java|基础篇】逻辑控制-顺序结构、分支结构和循环结构
文章目录顺序结构分支结构if单分支语句if else双分支语句if else if else多分支语句switch语句循环语句for循环while循环do while循环continuebreak总结顺序结构 顺序结构是指代码按照从上往下的顺序依次执行 分支结构 选择语句是条件成立时,才会执行的语句.共有三种.分为是if…...
【数据挖掘实战】——家用电器用户行为分析及事件识别(BP神经网络)
项目地址:Datamining_project: 数据挖掘实战项目代码 目录 一、背景和挖掘目标 1、问题背景 2、原始数据 3、挖掘目标 二、分析方法与过程 1、初步分析 2、总体流程 第一步:数据抽取 第二步:探索分析 第三步:数据的预处…...
Kmeans聚类算法-python
import random import pandas as pd import numpy as np import matplotlib.pyplot as plt # 计算欧拉距离 def calcDis(dataSet, centroids, k): clalist[] for data in dataSet: diff np.tile(data, (k, 1)) - centroids #相减 (np.tile(a,(2,1))就是把…...
Linux|奇怪的知识|locate命令---文件管理小工具
前言: Linux的命令是非常多的,有一些冷门的命令,虽然很少用,但可能会有意想不到的功能,例如,本文将要介绍的locate命令。 (平常很少会想到使用此命令,find命令使用的更多,偶然想起…...
Cadence Allegro 导出Function Pin Report报告详解
⏪《上一篇》 🏡《上级目录》 ⏩《下一篇》 目录 1,概述2,Function Pin Reportt作用3,Function Pin Report示例4,Function Pin Report导出方法4.1,方法14.2,方法2B站关注“硬小二”浏览更多演示视频 1,概述...
蓝桥杯2018年第九题-缩位求和
题目:在电子计算机普及以前,人们经常用一个粗略的方法来验算四则运算是否正确。比如:248 * 15 3720把乘数和被乘数分别逐位求和,如果是多位数再逐位求和,直到是1位数,得2 4 8 14 > 1 4 5;1 5 65…...
基于Yolv5s的口罩检测
1.Yolov5算法原理和网络结构 YOLOv5按照网络深度和网络宽度的大小,可以分为YO-LOv5s、YOLOv5m、YOLOv5l、YOLOv5x。本文使用YOLOv5s,它的网络结构最为小巧,同时图像推理速度最快达0.007s。YO-LOv5的网络结构主要由四部分组成,分别…...
Linux基本命令
Linux基本命令Linux的目录结构Linux命令入门目录切换相关命令(cd/pwd)相对路径、绝对路径和特殊路径符创建目录命令(mkdir)文件操作命令part1 (touch、cat、more)文件操作命令part2 (cp、mv、rm)查找命令 (which、find…...
云原生场景下的安全左移
本博客地址:https://security.blog.csdn.net/article/details/129430859 一、安全左移概述 安全左移需要考虑开发安全、软件供应链安全、镜像仓库、配置核查这四个部分。 首先是开发安全,安全团队需要关注代码漏洞,比如使用代码检查工具进…...
mysql面试经典问题
文章目录 1. 能说下myisam 和 innodb的区别吗?2. 说下mysql的索引有哪些吧,聚簇和非聚簇索引又是什么?3. 那你知道什么是覆盖索引和回表吗?4. 锁的类型有哪些呢5. 你能说下事务的基本特性和隔离级别吗?6. 那ACID靠什么保证的呢?7. 那你说说什么是幻读,什么是MVCC?幻读什…...
微信小程序|基于小程序+C#制作一个考试答题小程序
基于小程序+C#制作一个考试答题小程序打破传统线下考试答题的边界线问题,使考试不用再局限与某个统一的场所,只要有设备,哪里都能考试。 一、小程序...
【1605. 给定行和列的和求可行矩阵】
来源:力扣(LeetCode) 描述: 给你两个非负整数数组 rowSum 和 colSum ,其中 rowSum[i] 是二维矩阵中第 i 行元素的和, colSum[j] 是第 j 列元素的和。换言之你不知道矩阵里的每个元素,但是你知…...
Linux命令之nano命令
一、nano命令简介 nano是一个小型、免费、友好的编辑器,旨在取代非免费Pine包中的默认编辑器Pico。nano不仅复制了Pico的外观,还实现了Pico中一些缺失(或默认禁用)的功能,例如“搜索和替换”和“转到行号和列号”。nan…...
IT项目管理(作业1)
一.单选题(共12题,100.0分) 1.以下哪项是项目的一个实例?( ) A、改进现有的业务流程或程序B、为公司运营提供信息技术支持C、批量生产一种新近开发出来的家用电冰箱D、管理一个公司 我的答案:A 2.下列哪项不能成为项目结束的理由?( ) A…...
蓝桥杯嵌入式(G4系列):串口收发
前言: 在整个蓝桥杯考试中涉及串口的次数还是较多,这里写下这篇博客,记录一下自己的学习过程。 STM32Cubemx配置: 首先,我们点击左侧的Connectivity选择USART1进行如下配置。 使能串口中断 在左侧的管脚配置上也要做出…...
「兔了个兔」玉兔踏青,纯CSS实现瑞兔日历(附源码)
💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…...
第17章 关于局部波动率的一些总结
这学期会时不时更新一下伊曼纽尔德曼(Emanuel Derman) 教授与迈克尔B.米勒(Michael B. Miller)的《The Volatility Smile》这本书,本意是协助导师课程需要,发在这里有意的朋友们可以学习一下,思…...
反转链表合并两个有序链表链表分割链表的回文结构相交链表
反转链表来源:杭哥206. 反转链表 - 力扣(LeetCode)typedef struct ListNode ListNode; struct ListNode* reverseList(struct ListNode* head) {if (headNULL){return NULL;}ListNode* prevhead;ListNode* curhead->next;ListNode* furNUL…...
联想触摸板只能单击,二指三指失效
问题背景 这问题是我笔记本两三年前重装win10系统后出现的,当时有鼠标懒得弄。今天发现没鼠标后,触摸板连二指滑动都没有太麻烦了,所以决定弄一下。 联想笔记本,win10系统重装后出现的问题。 1.鲁大师,联想电脑管家 …...
mysql 删除表卡死,或是截断(truncate)卡死解决办法
利用工具进行truncate表的时候,一直运行,运行了十几分钟也没有成功。中止之后再运行也是一样。但是删除表的数据以及查询表数据都是可以的。猜测是锁死了。 使用 show processlist; 发现Waiting for table metadata lock 问题; mysql> s…...
ORACLE P6 EPPM 架构及套件介绍(源自Oracle Help)
引言 借助官方帮助的内容, 我水一篇文章,翻译了下文 P6EPPM架构 P6各套件 P6:大多数用户几乎完全依赖在标准网络浏览器中运行的 P6 网络应用程序。简称为 P6,它是管理项目的主要界面。P6 移动版:允许团队成员提供任…...
Android开发面试:数据结构与算法知识答案精解
目录 数据结构与算法 线性表 数组 链表 栈 队列 树 二叉树 红黑树 哈夫曼树 排序算法 冒泡排序 选择排序 插入排序 希尔排序 堆排序 快速排序 归并排序 查找算法 线性查找 二分查找 插值查找 斐波拉契查找 树表查找 分块查找 哈希查找 动态规划算法…...
京东前端手写面试题集锦
实现call方法 call做了什么: 将函数设为对象的属性执行和删除这个函数指定this到函数并传入给定参数执行函数如果不传入参数,默认指向为 window // 模拟 call bar.mycall(null); //实现一个call方法: // 原理:利用 context.xxx self obj.…...
【JDK动态代理】及【CGLib动态代理】:Java的两种动态代理方式
Java的两种动态代理方式动态代理是什么?JDK动态代理CGLib动态代理CGLib 底层原理CGLib 实现步骤两者区别Spring AOP原理--动态代理动态代理是什么? 动态代理就是,在程序运行期,创建目标对象的代理对象,并对目标对象中的…...
《程序员面试金典(第6版)》面试题 04.05. 合法二叉搜索树
题目描述 实现一个函数,检查一棵二叉树是否为二叉搜索树。 示例 1: 输入: 2/ \1 3输出: true 示例 2: 输入: 5/ \1 4/ \3 6输出: false 解释: 输入为: [5,1,4,null,null,3,6]。 根节点的值为 5 ,但是其右子节点值为 4 。 解题思路与代码 使用…...
Nginx 反向代理技术梳理
Nginx 反向代理技术梳理 使用反向代理脑图 域名 A 可以解析找到 CDN 缓存 用户点击 APP 即通过 URL 发送 HTTPS 请求域名会进入阿里云的 DNS 服务器,解析域名会做第一级负载均衡通过 CDN 解析出域名,通过阿里云配置转发到 CDN 缓存服务器 CDN 有数据则直…...
华为OD机试 - 整数编码(Java) | 机试题+算法思路+考点+代码解析 【2023】
整数编码 题目 实现一种整数编码方法,使得待编码的数字越小,编码后所占用的字节数越小。 编码规则如下: 1、编码时7位一组,每个字节的低7位用于存储待编码数字的补码。 2、字节的最高位表示后续是否还有字节,置1表示后面还有更多的字节,置0表示当前字节为最后一个字…...
蓝桥杯冲击01 - 质数篇
目录 前言 一、质数是什么 二、易错点 三、试除法判断是否为质数 四、质数常考三大模型 五、真题练手 前言 距离蓝桥杯还有一个月,高效复习蓝桥杯知识, 质数相关的题目在蓝桥杯中经常出现。例如,2016年蓝桥杯省赛初赛第四题就是要求判…...
【WEB前端进阶之路】 HTML 全路线学习知识点梳理(下)
前言 本文是HTML零基础小白学习系列的第三篇文章,点此阅读 上一篇文章 文章目录前言十五.HTML布局1.使用div元素添加网页布局2.使用table元素添加网页布局十六.HTML表单和输入1.文本域2.密码字段3.单选按钮4.复选框5.提交按钮十七.HTML框架1.iframe语法2.iframe设置…...
MySQL索引分类
1 MySQL索引都有哪些分类按数据结构分类可分为:Btree索引、Hash索引、Full-text索引;按物理存储分类可分为:聚簇索引、二级索引(辅助索引);按字段特性分类可分为:主键索引、普通索引、前缀索引;按字段个数分类可分为&a…...
六枝网站建设/天津做网站的公司
一、Spring面试题 1、Spring 在ssm中起什么作用? 答: Spring:Spring轻量级框架。 作用:Bean工厂,用来管理Bean的生命周期和框架集成。 Spring框架的两大核心: ①. IOC/DI(控制反转/依赖注入) …...
怎么免费推广自己的业务/seo营销推广全程实例
题目链接 首先考虑询问[1,n]怎么做 设 f[i][0/1]表示[1,i]以0/1结尾的不同子序列个数 则 \(if(A[i]) f[i][1] f[i-1][0] f[i-1][1] 1 , f[i][0] f[i-1][0]\)\(\ \ if(!A[i]) f[i][0] f[i-1][0] f[i-1][1] 1 , f[i][1] f[i-1][1]\) 很整齐,我们来写成矩阵的样…...
做外贸如何分析客户网站/如何优化网站排名
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、r美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案…...
好用的wordpress企业模版/百度官网下载
一个项目只有一给仓库,状态也只能有一个,但是组件会非常之多,我们为了每个组件的共享状态便于统一管理,需要将多个reducer进行合并 export default function combineReducers(reducers) {const reducerKeys Object.keys(reducer…...
网页及网站建设用什么软件/怎么找专业的营销团队
前言 后端在写对外的API接口时,一般会对参数进行签名来保证接口的安全性,在设计签名算法的时候,主要考虑的是这几个问题: 1. 请求的来源是否合法 2. 请求参数是否被篡改 3. 请求的唯一性 我们的签名加密也是主要针对这几个问题来…...