【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…...
Go单元测试基础
Go单元测试基础1.go test工具2.单元测试函数3.go test -v/go test -run4.跳过某些测试用例5.子测试6.表格驱动测试7.并行测试8.使用工具生成测试代码9.测试覆盖率1.go test工具 Go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程是类似的,并不需…...
华为OD机试 -执行时长(Java) | 机试题+算法思路+考点+代码解析 【2023】
执行时长 题目 为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务,假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成 输入描述: 第一个…...
互联网检测服务器
互联网检测服务器 1. 题目要求2. 试题解析1. 题目要求 题目: 为了模拟 Internet 访问测试,请搭建网卡互联网检测服务。 2. 试题解析 根据windows的官方文档,互联网检测服务有专门的域名,通过注册表可以找到检测域名字符串的写法(字符串为www.msftconnecttest.com),具体位…...
YOLO系列模型改进指南
YOLO系列模型改进指南 目前包含yolov5,yolov7,yolov8模型的众多改进方案,效果因数据集和参数而定,仅供参考。 如果需要改进模型,建议baseline和改进模型也不要载入预训练权重,不然的话,他们的起…...
QML- 在QML定义JavaScript资源
在QML定义JavaScript资源一、概述二、后台代码实现文件三、共享JavaScript资源(库)一、概述 QML应用程序的一部分程序逻辑可以用 JavaScript 定义。JavaScript代码可以在QML文档中内联定义,也可以分离到单独的 JavaScript 文件中(在QML中称为JavaScript资源)。 QML…...
php(tp框架)使用七牛云对象存储
图片文件存服务器非常占用存储带宽资源,且用户访问体验也不佳,因此使用一些第三方oss存储就很有必要了。之前lz发布了一篇tp使用阿里云oss的博文。不过阿里oss是收费的。而七牛云提供了一些免费使用额度。所以,这里额外补充一篇。 1.前提准备…...
八大排序算法之插入排序+希尔排序
目录 一.前言(总体简介) 关于插入排序 关于希尔排序: 二.插入排序 函数首部: 算法思路: 算法分析 插入排序代码实现: 插入排序算法的优化前奏: 三.希尔排序(缩小增量排序) 1.算法思想: 2.算法拆分解析 序列分组 分组预排序: 分组预排序的另一种实现方式: 希尔…...
蓝桥杯第十四届蓝桥杯模拟赛第三期考场应对攻略(C/C++)
这里把我的想法和思路写出来,恳请批评指正! 目录 考前准备 试题1: 试题2: 试题3: 试题4: 试题5: 试题6: 试题7: 试题8: 试题9: 试题1…...
【数论】最大公约数、约数的个数与约数之和定理
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...
第28篇:Java日期Calendar类总结(二)
目录 1、获取系统当前时间 2、获取指定日期 3、对象字段类型 4 、对象信息设置 4.1 Set设置...
【Python】字符串 - 集大成篇
目录 1. 不同语言的字符串比较 1.1 C 语言 1.2 C 语言 1.2.1 C 风格字符串 1.2.2 C 风格字符串 1.3 JAVA 1.4 Python 2. Python 字符串 2.1 方法 2.2.1 title () 2.2.2 lower () 2.2.3 upper () 2.2.4 rstrip () 2.2.5 lstrip …...
IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤
IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤 、 文章目录IDEA: 如何导入项目模块 以及 将 Java程序打包 JAR 详细步骤IDEA 导入项目模块 Module一. 创建一个空项目二. 导入 Module三. 将 Module 与 当前项目关联上IDEA 将 Java程序打包成…...
算法的效率——时间复杂度和空间复杂度
文章目录1. 算法效率1.1 什么是算法1.2 算法的好坏2. 时间复杂度2.1 什么是时间复杂度2.2 时间复杂度的计算方法2.3 大O的渐进表示法2.4 常见时间复杂度计算举例3. 空间复杂度4. 常见复杂度对比1. 算法效率 1.1 什么是算法 目前普遍认可对算法的定义是:算法是解决…...
2021年 第12届 蓝桥杯 Java B组 省赛真题详解及小结【第1场省赛 2021.04.18】
总分:5 一、试题A:ASC 得分:5分 本题总分:5 分 【问题描述】 已知大写字母 A 的 ASCII 码为 65,请问大写字母 L 的 ASCII 码是多少? 【答案提交】 这是一道结果填空的题,你只需要算出结果后提…...
透过等待看数据库
等待分类与解决基本流程步骤1.定位问题系统等待往往能直观的反映出系统问题。通过一些常见的等待类型,同样可以找到系统瓶颈,结合性能计数器往往定位更准确。如:系统中存在大量IO类等待,那么可能表示你的磁盘或内存是语句运行缓慢…...
中科亿海微FPGA
国产FPGA中,紫光、安路、高云称得上是三小龙,其他的半斤八两,中科亿海微也算是其中之一。 其产品为亿海神针系列,如下: 可见其最小规模也有9.2KLUT,最大竟有136K之多了,对比其他国产࿰…...
【链表OJ题(三)】链表中倒数第k个结点
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(三)1. 链表…...
华为防火墙的学习
防火墙 - 含义和定义 什么是防火墙? 防火墙的工作原理 防火墙的区域: 包过滤防火墙----访问控制列表技术---三层技术 代理防火墙----中间人技术---应用层 状态防火墙---会话追踪技术---三层、四层 UTM---深度包检查技术----应用层 下一代防火墙 防火墙的…...
SPI 接口OLED 模块 - 兼容5V 和3.3V 电平
PCB 布局参考了老王0.8元128x32OLED显示屏转接板,开源项目地址:老王0.8元128x32OLED。 老王家买的屏幕放了快一年了,终于还是决定整个单独的模块,之前一直打算集成到开发板上的,不太灵活。相比那个转接板,主…...
css布局和定位
在Web开发中,CSS布局和定位是非常重要的技能。在这篇博客中,我们将深入探讨CSS布局和定位的概念、基本技术和最佳实践。 **CSS布局基础** ├── 盒模型 │ ├── 内边距 │ │ ├── padding │ │ ├── padding-top │ │ ├── p…...
python -- 批量读取多个文件,并将每个文件中相同变量累加
python – 批量读取多个文件,并将每个文件中相同变量累加 情况描述 现有多个nc文件,位于同一个文件夹中,如下所示每个文件中都有相同的变量,想要读取每个文件中的变量然后将其加起来意思就是说: 文件1中的变量文件2中…...
低代码开发流程是怎么样的?
低代码开发流程是怎么样的?现在很多文章都在下功夫宣传what(低代码是什么)、why(为什么要用低代码),但是很少有文章能够系统讨论how(怎么用低代码)的问题。 所以我花3天的时间准备了…...
任何时候都不要在 for 循环中删除 List 集合元素!!!
首先说结论:无论什么场景,都不要对List使用for循环的同时,删除List集合元素,因为这么做就是不对的。 阿里开发手册也明确说明禁止使用foreach删除、增加List元素。 正确删除元素的方式是使用迭代器(Iteratorÿ…...
koa+Vite+vue3+ts+pinia构建项目
一、 初始化构建项目 npm create vite myProject -- --template vue-ts 注:Vite 需要 Node.js 版本 14.18,16。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版…...
k8s-yaml文件
文章目录一、K8S支持的文件格式1、yaml和json的主要区别2、YAML语言格式二、YAML1、查看 API 资源版本标签2、编写资源配置清单2.1 编写 nginx-test.yaml 资源配置清单2.2 创建资源对象2.3 查看创建的pod资源3、创建service服务对外提供访问并测试3.1 编写nginx-svc-test.yaml文…...
存储引擎
目录 ❤ MySQL存储引擎 什么是存储引擎? MySQL支持哪个存储引擎? ❤ 各种存储引擎的特性 概述 各种存储引擎的特性 各种搜索引擎介绍 ❤ 常用存储引擎及适用场景 ❤ 存储引擎在mysql中的使用 存储引擎相关sql语句 指定存储引擎建表 在建表时指定 在配置文件中…...
Go中 channel的使用
文章目录背景channel 简介使用说明声明发送和接受数据关闭channel使用示例背景 使用 sync 包和 context 包的工具可以实现多个协程之间互相协作, 但是没有一种很好的方式解决多个协程之间通信的问题. golang 作者 Rob Pike 说过一句话,不要通过共享内存来通信&…...
【C++】string OJ练习
文章目录1. 仅仅反转字母思路分析代码实现2. 字符串中的第一个唯一字符题目分析代码实现3. 《剑指offer》——替换空格解法一:寻找替换思路分析代码实现优化解法二:空间换时间思路分析代码实现4.字符串最后一个单词的长度思路分析代码实现5. 字符串相加思…...
进程间通信IPC
进程间通信IPC (InterProcess Communication) 一、进程间通信的概念 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据…...
推荐网站在线看兄弟们/广州疫情最新动态
2019独角兽企业重金招聘Python工程师标准>>> 一、框架原理 sqlMapConfig.xml:(是mybatis的全局配置文件,名称不固定的)配置了数据源、事务等mybatis运行环境 mapper.xml:配置sql语句 SqlSessionFactory:(会…...
统计wordpress/成都谷歌seo
分析 它居然真的是个nlog^3暴力?! 两个数在加小于min(lowbit(x),lowbit(y))的数时对他们的奇偶性不影响 因此每次加上min(lowbit(x),lowbit(y))判断此时的奇偶性 直接排序即可 代码 #include<bits/stdc.h> using namespace std; #define int long …...
大连三合一网站制作/提升神马关键词排名报价
简介: 阿里云边缘容器服务上线 1 年后,正式开源了云原生边缘计算解决方案 OpenYurt,跟其他开源的容器化边缘计算方案不同的地方在于:OpenYurt 秉持 Extending your native Kubernetes to edge 的理念,对 Kubernetes 系…...
最新版在线 网/百度seo运营工作内容
这是在网上找到的一张流程图,写的比较好,大家可以先看图,然后看详细阅读下面的各个步骤。执行流程:1.连接验证及解析客户端与MySQL Server建立连接,发送语句给MySQL Server,接收到后会针对这条语句创建一个…...
企业网站建设需要哪些费用/推广点击器
在上篇文章写到我们为什么要分层.有很多读者提出来很多宝贵的意见.让我受益匪浅,深深的感觉到自己的水平"还有很大的提升空间".首先感谢这些朋友们,我会进一步总结完善自己的想法. 截取了部分朋友的留言,感谢他们: 这次我用对比的方式描述一下,分层到底分出了什么.俗…...
推广方法及策略/吉安seo招聘
导读热词下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。String body"this is sms demo";Intent mmsintent new Intent(Intent.ACTION_SENDTO,Uri.fromParts("smsto",number,null));mmsin…...