Java分支结构:一次不经意的选择,改变了我的一生。
- 👑专栏内容:Java
- ⛪个人主页:子夜的星的主页
- 💕座右铭:前路未远,步履不停
目录
- 一、顺序结构
- 二、分支结构
- 1、`if`语句
- 2、`switch`语句
好久不见!命运之轮常常在不经意间转动,有时一个看似微小的选择就足以改变我们的一生。就像生活中的一次无意间的选择能够产生完全不同的影响一样,Java的分支语句也能根据程序的一次选择,改变整个程序的执行轨迹。好了,让我们开始慢慢了解分支结构的神奇魅力吧 ~
一、顺序结构
在介绍分支结构之前,让我们先认识一下顺序结构。如果将分支结构比喻为我们真实的人生旅程,那么顺序结构就像是生活中父母为我们设定的理想状态。他们认为我们会沿着他们为我们规划的道路一路前行,直到完成一生的旅程。然而,实际生活中,每个人都不会完全按照父母所设定的人生轨迹行走。但是在编程世界中,Java程序却不同,它会按照我们给予的代码一步步顺序地执行,直到程序的终结。
是的!Java非常听话。在Java中,顺序结构的程序会按照代码编写的顺序,一行一行地执行,从上往下依次执行,不会跳过任何一行代码。在顺序结构中,每一条语句都会在前一条语句执行完成之后才会执行。
public class Main {public static void main(String[] args) {System.out.println("读书");System.out.println("工作");System.out.println("娶妻");System.out.println("生子");}
}
如果调整代码的书写顺序,则执行顺序也发生变化。
public class Main {public static void main(String[] args) {System.out.println("读书");System.out.println("娶妻");System.out.println("工作");System.out.println("生子");}
}
二、分支结构
没错,顺序结构的人生一眼就能望到头。但万幸的是我们真实的生活是分支结构。如果我们将分支结构比喻为人生,那么它就像是我们在面临抉择时所做出的决策。每当程序遇到一个分支点,它将根据特定的条件或选择,决定程序的下一步走向。这就如同我们在生活中所面对的选择,可能会导致不同的结果和影响我们未来的发展。
1、if
语句
if
的语句比较简单。举个例子你就知道了。
比如:如果今年高考考了400分,就去上大学。
public class Main {public static void main(String[] args) {int score = 599;if(score >= 400)System.out.println("上大学!");}
}
分数够了就去上大学了,那么分数不够呢?这个时候就要用到else
了。
public class Main {public static void main(String[] args) {int score = 399;if (score >= 400) {System.out.println("上大学!");} else {System.out.println("未达到上大学的成绩要求!");System.out.println("要继续努力学习!");}}
}
这里有个需要注意的事项,当if
语句后面的代码块只有一行时,可以省略花括号。这意味着紧跟在if语句后面的那行代码属于if语句的执行体。如果你像这个例子一样需要执行多个语句,就必须加上花括号{}
,将它们组成一个代码块。
当然!if 分支语句还有一种写法。现在就展示给你看!
public class Main {public static void main(String[] args) {int score = 399;if (score >= 400) {System.out.println("上本科!");} else if (score < 400 && score >= 300) {System.out.println("上专科");} else if (score >= 200 && score < 300) {System.out.println("上复读班");}else {System.out.println("家里蹲");}}
}
2、switch
语句
switch
语句的基本语法:
switch (表达式) {case 常量1:// 执行语句块1break;case 常量2:// 执行语句块2break;// more cases...default:// 执行默认语句块break;
}
先别急,容我慢慢解释。
switch语句的执行流程是:
-
先计算表达式的值
-
和
case
依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break
时结束 -
当表达式的值没有与所列项匹配时,执行
default
int day = 1;
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("输入有误");
break;
}
为了避免case穿透,在switch
语句中,每个case
分支后面通常需要包含break
语句。当匹配到某个case
分支时,程序会执行该分支内的代码,并且在执行完毕后终止整个switch
语句的执行。如果没有在case
分支的末尾添加break
语句,程序将会继续执行下一个case
分支的代码,而不进行条件判断。
行!我们来看一个例子,了解一下case穿透。
public class Main {public static void main(String[] args) {int day = 1;switch(day) {case 1:System.out.println("星期一");case 2:System.out.println("星期二");case 3:System.out.println("星期三");case 4:System.out.println("星期四");case 5:System.out.println("星期五");case 6:System.out.println("星期六");case 7:System.out.println("星期日");default:System.out.println("输入有误");}}
}
【switch语句的注意事项】
-
多个
case
后的常量值不可以重复 -
switch
的括号内只能是以下类型的表达式:-
基本类型:
byte
、char
、short
、int
,注意不能是long类型 -
引用类型:
String
常量串、枚举类型
-
我们做出的每个决定,都会决定人生的走向,可能在不经意间一个选择,碰到的一个人,做对的一道题目,逃的一节课,打开的一个游戏,都在影响着我们的一生,但那时候的我们并没有意识到,而未来数十年后的某一天,当你猛然间回头,才命运在你生命中每个瞬间都做下了记号。
一次不经意间的选择,改变了Java程序执行的路径,也可能改变了我们的路径。今天就先聊到这里了,希望看完这篇文章,你能学会Java的分支结构。我们下次再见!
相关文章:
Java分支结构:一次不经意的选择,改变了我的一生。
👑专栏内容:Java⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、顺序结构二、分支结构1、if语句2、switch语句 好久不见!命运之轮常常在不经意间转动,有时一个看似微…...
Unity中Shader需要了解的点与向量
文章目录 前言一、点和向量的区别二、向量加法减法1、向量加法2、向量减法(可以把向量减法转化为向量加法) 三、向量的模四、标量![在这里插入图片描述](https://img-blog.csdnimg.cn/03df81df3cdf47989a11605d5f5e7da5.png)1、向量与标量的乘法 前言 Unity中Shader了解使用的…...
Java初始化大量数据到Neo4j中(一)
背景:我们项目第一次部署图数据库,要求我们把现有的业务数据以及关系上线第一时间初始化到Neo4j中。开发环境数据量已经百万级别。生成环境数据量更多。 我刚开始开发的时候,由于对Neo4j的了解并没有很多,第一想到的是用代码通用组…...
Excel·VBA日期时间转换提取正则表达式函数
标准日期转换 Function 标准日期(ByVal str$) As DateDim pat$, result$arr Array("(\d{4}).*?(\d{1,2}).*?(\d{1,2})", "(\d{4}).*?(\d{1}).*?(\d{1,2})")If Len(str) < 8 Then pat arr(1) Else pat arr(0)With CreateObject("vbscript.r…...
Django中的缓存
Django中的缓存 缓存的定义 定义: 缓存是-类可以更快的读取数据的介质统称,也指其它可以加快数据读取的存储方式。一般用来存储临时数据,常用介质的是读取速度很快的内存 意义:视图渲染有一定成本,数据库的频繁查询过高;所以对于低频变动的页…...
Python 编程基础 | 第二章-基础语法 | 2.4、while 语句
一、while 语句 1、循环语句 Python 编程中 while 语句用于循环执行程序,其基本形式为: while 判断条件(condition):执行语句(statements)……例如: count 0 while (count < 9):print(count)count 1while 语句时还有另外两个…...
Qt Charts简介
文章目录 一.图标类型Charts分类1.折线图和样条曲线图2.面积图和散点图3.条形图4.饼图5.误差棒图6.烛台图7.极坐标图 二.坐标轴Axes类型分类三.图例四.图表的互动五.图表样式主题 一.图标类型Charts分类 图表是通过使用系列类的实例并将其添加到QChart或ChartView实例来创建的…...
MinGW、GCC、GNU和MSVC是什么?有什么区别?
在C和C开发中,常常会遇到MinGW、GCC、GNU和MSVC这些术语。本教程将向您解释它们的含义以及它们之间的区别,帮助您更好地理解这些常见的编译工具和开发环境。 MinGW(Minimalist GNU for Windows): MinGW是一个开源的软件…...
引入easyExcel后,导致springboot项目无法开启tomcat
报错信息: Caused by: java.lang.annotation.IncompleteAnnotationException: org.terracotta.statistics.Statistic missing element type at sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:81) at com.sun.proxy…...
Doris数据库FE——启动流程源码详细解析
Doris中FE主要负责接收和返回客户端请求、元数据以及集群管理、查询计划生成等工作。代码路径:doris/fe/fe-core/src/main/java/org/apache/doris/DorisFE.java 环境检查 在启动FE的时候,主要做环境检查。检查一些启动时必要的环境变量以及初始化配置…...
服务断路器_Resilience4j线程池隔离实现
线程池隔离配置修改YML文件 resilience4j:thread-pool-bulkhead: instances:backendA:# 最大线程池大小maxThreadPoolSize: 4# 核心线程池大小coreThreadPoolSize: 2# 队列容量queueCapacity: 2编写controller /*** 测试线程池服务隔离* return*/Bulkhead(name "backe…...
原神启动原神启动原神启动原神启动
测试游戏抽卡场景是确保玩家可以正常抽取虚拟物品或角色的重要部分。以下是一些可能的游戏抽卡场景的测试用例示例: 1.正常抽卡流程: 2.测试用户是否能够成功进行一次或多次抽卡操作。 3.确保每次抽卡后,用户收到相应的物品或角色。 4.抽卡…...
Glide - Android的图像加载和缓存库,专注于平滑滚动
官网 GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling 项目介绍 An image loading and caching library for Android focused on smooth scrolling Glide is a fast and efficient open source media management a…...
如何使用 API 接口获取商品数据,从申请 API 接口、使用 API 接口到实际应用,一一讲解
在当今的数字化时代,应用程序接口(API)已经成为数据获取的重要通道。API 接口使得不同的应用程序能够方便地进行数据交换,从而促进了信息的广泛传播和利用。在众多的数据源中,商品数据是一个非常重要的领域,…...
苹果 CMS 原生 Java 白菜影视 App 源码【带打包教程】
苹果 CMS 原生 Java 白菜影视 App 源码是一款功能强大的影视应用程序,支持画中画、投屏、点播、播放前广告和支持普通解析等多种功能。与萝卜 App 源码相比,该套源码更加稳定,且拥有画中画投屏和自定义广告等功能,提高了安全性。 …...
Flutter开发之Package与Plugin
前言 在flutter中有包和插件两个概念,插件 (plugin) 是 package 的一种,全称是 plugin package,我们简称为 plugin,中文叫插件。包(Package)主要指对flutter相关功能的封装,类似于Android中的插件和iOS中的三方库。而插…...
[极客大挑战 2019]RCE ME 取反绕过正则匹配 绕过disable_function设置
目录 取反 1.蚁剑插件绕过 2.baypass disable_function open_dir/disable_function putenv()/LD_PRELOAD 来绕过限制 利用条件 利用思路 有意思。。。。 <?php error_reporting(0); if(isset($_GET[code])){$code$_GET[code];if(strlen($code)>40){die("Th…...
硬盘接口随机
关于硬盘接口 1 首先,关于[物理接口、协议、通道]2 物理接口:通讯中的电,光口,“物理规格,像是公路、铁路”。通道:通讯协议中的应用层以下所有层?“县道,省道,高速&am…...
芯片测试方案之如何测试芯片EN输入阈值?
在电源管理芯片的设计中,除了常规的VIN、VOUT以及GND端口之外,还会有SW、EN、FB等芯片独有的特殊端口引脚,这些引脚或负责电源开关的输入,或负责电路的反馈电压/电流,这些引脚在芯片的工作中有着极其重要的作用&#x…...
screenOrientation的值
在 Android 应用程序中,android:screenOrientation 属性可以设置为多个不同的值,以控制活动的屏幕方向。以下是一些常用的 android:screenOrientation 的值: "unspecified":这是默认值,表示系统会根据设备的…...
为什么SQL预编译可以防止SQL注入攻击
前言 防范SQL注入攻击是每一位做后端开发的程序员必须会的基本功。本文介绍其中一种防范攻击的方法:SQL预编译。 本文大部分内容引用自这篇文章,部分内容有修改。 注入例子 先简单回顾下SQL注入攻击的过程,假设有一个SQL语句: …...
基于体系结构-架构真题2022(四十一)
给定关系模式R(U,F),其中U为属性集,F是U上的一组函数依赖,那么函数依赖的公理系统中分解规则是指()为F所蕴含。 解析: 伪传递是x到y,wy到z,则xw到z 传递是z…...
【uniapp+vue3 】页面加载时根据不同角色设置导航栏标题
uniapp 页面加载时根据不同角色设置导航栏标题 其实很好实现,第一次开发uniapp项目,所以什么都不懂,绕了一点点的弯路 在对应页面的onLoad中获取到跳转过来传的参数中的判断角色字段,我这里传的是getRole uni.setNavigationBarT…...
不讲故事的设计模式-模板方法模式
文章目录 模板方法模式简介作用模板方法模式的缺点模板方法模式的应用场景业务场景开源框架中的应用 对比回调和Hook模式关于组合优先于继承 关于设计模式乱用的现象 模板方法模式 简介 模板方法模式是一种行为型设计模式,该设计模式的核心在于通过抽象出一套相对…...
基于SpringBoot的酒店客房管理系统
基于SpringBoot的酒店管理系统、酒店客房管理系统 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/Ecilpse、Navicat、Maven 系统展示 首页 管理员界面 用户界面 代码展示 <temp…...
消息队列-RabbitMQ(二)
接上文《消息队列-RabbitMQ(一)》 1、RabbitMQ概念...
程序通过命令行获取操作系统名称+版本+CPU名称等:Part2
文章目录 (一)沿用的方法(二)问题和调整(2.1)Windows11的版本号是10.0(2.2)Golang和管道符号(Linux)(2.3)最大内存容量 vs 当前安装内…...
微软最热门的10款前端开源项目!
本文来盘点微软开源的十大前端项目,这些项目在 Github 上获得了超过 45 万 Star! Visual Studio Code Visual Studio Code 是一款由微软开发的开源的代码编辑器。它支持多种编程语言,如C、C、C#、Python、JavaScript 和 TypeScript 等&…...
C#(CSharp)入门实践项目(简易回合制游戏)
项目名称 木木夕营救公主 项目介绍 这是一个小游戏,你将扮演一个英雄(木木夕),去打败恶龙,拯救出公主,该项目采用回合制战斗模式,由于角色的血量和攻击为随机数,所以需要靠运气才…...
GEO生信数据挖掘(五)提取临床信息构建分组,分组数据可视化(绘制层次聚类图,绘制PCA图)
检索到目标数据集后,开始数据挖掘,本文以阿尔兹海默症数据集GSE1297为例 上节做了很多的基因数据清洗(离群值处理、低表达基因、归一化、log2处理)操作,本节介绍构建临床分组信息。 我们已经学习了提取表达矩阵的临床…...
wordpress给用户自动注册/现在最火的推广平台有哪些
什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多…...
shopify建站费用/太原seo排名优化公司
某台服务器php.ini的设置: error_reporting E_ALL & ~E_NOTICE display_errors Off log_errors On error_log /www/logs/php_error.log 按理说这样,错误信息是不会输出了,但是当PHP有错误时,会把报错提示显示在页面上。 …...
佛山网站建设明细/东莞网站建设推广技巧
蓝牙(CoreBluetooth)-中心设备(客户端) 蓝牙客户端-中心设备 主要内容 1. 创建中央管理器 2. 发现并且连接外设 3. 寻找连接上的外设数据 4. 发送读或写特征值的请求 5. 订阅外设特征值 1. 创建中心管理器 因为CBCentralManager代表着本地中央设备,所以你必须先创建一个中央管理…...
怎么做网站赚/网站优化建议
转自:http://hovertree.com/h/bjaf/hg6cqn8w.htm 感谢原作者,辛苦了。 推荐:http://www.cnblogs.com/roucheng/p/3504465.html 下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目…...
网站标题空格/百度小说搜索热度排行榜
1.VGG 2.ResNet 3.DenseNet 4.ResNeXt 相关代码参考:PyTorch实现ResNeXt 5.ResNeSt 在ResNeXt的分组结构基础上,继续对每组划分R个split,执行Split Attention操作,最后将各个分组concatenate一起,经变换后和原始输入…...
论某政府网站职能建设/百度一下首页登录入口
/*************************************************************************************** linux 模拟生成 CAN 设备* 说明:* 最近在看CANopenSocket的过程中看到能够生成模拟的CAN设备,于是查了点资料,结…...