Java 分支结构 - if…else/switch
顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构。
Java有两种分支结构:
- if语句
- switch语句
if语句
一个if语句包含一个布尔表达式和一条或多条语句。
语法
If 语句的用语法如下:
if(布尔表达式)
{//如果布尔表达式为true将执行的语句
}
如果布尔表达式的值为 true,则执行if语句中的代码块。否则执行 If 语句块后面的代码。
public class Test {public static void main(String args[]){int x = 10;if( x < 20 ){System.out.print("这是 if 语句"); }}
}
以上代码编译运行结果如下:
这是 if 语句
if...else 语句
if 语句后面可以跟 else 语句,当if语句的布尔表达式值为 false 时,else 语句块会被执行。
语法
if…else 的用法如下:
if(布尔表达式){//如果布尔表达式的值为true
}else{//如果布尔表达式的值为false
}
实例
public class Test {public static void main(String args[]){int x = 30;if( x < 20 ){System.out.print("这是 if 语句");}else{System.out.print("这是 else 语句");}}
}
以上代码编译运行结果如下:
这是 else 语句
if...else if...else 语句
if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。
使用if,else if,else语句的时候,需要注意下面几点:
- if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
- If 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
- 一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。
语法
if...else 语法格式如下:
if(布尔表达式 1){//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){//如果布尔表达式 3的值为true执行代码
}else {//如果以上布尔表达式都不为true执行代码
}
实例
public class Test {public static void main(String args[]){int x = 30;if( x == 10 ){System.out.print("Value of X is 10");}else if( x == 20 ){System.out.print("Value of X is 20");}else if( x == 30 ){System.out.print("Value of X is 30");}else{System.out.print("这是 else 语句");}}
}
以上代码编译运行结果如下:
Value of X is 30
嵌套的 if…else 语句
使用嵌套的 if-else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。
语法
嵌套的 if…else 语法格式如下:
if(布尔表达式 1){如果布尔表达式 1的值为true执行代码if(布尔表达式 2){如果布尔表达式 2的值为true执行代码}
}
你可以像 if 语句一样嵌套 else if...else。
实例
public class Test {public static void main(String args[]){int x = 30;int y = 10;if( x == 30 ){if( y == 10 ){System.out.print("X = 30 and Y = 10");}}}
}
以上代码编译运行结果如下:
X = 30 and Y = 10
switch 语句
switch 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
语法
switch 语法格式如下:
switch(expression){case value ://语句break; //可选case value ://语句break; //可选//你可以有任意数量的case语句default : //可选//语句
}
switch 语句有如下规则:
- switch 语句中的变量类型只能为 byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
- switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
- case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
- 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到break语句出现才会跳出 switch 语句。
- 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
- switch 语句可以包含一个 default 分支,该分支必须是 switch 语句的最后一个分支。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
实例
public class Test {public static void main(String args[]){//char grade = args[0].charAt(0);char grade = 'C';switch(grade){case 'A' :System.out.println("优秀"); break;case 'B' :case 'C' :System.out.println("良好");break;case 'D' :System.out.println("及格");case 'F' :System.out.println("你需要继续努力");break;default :System.out.println("无效等级");}System.out.println("你的等级是 " + grade);}
}
以上代码编译运行结果如下:
良好
你的等级是 C相关文章:
Java 分支结构 - if…else/switch
顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构。 Java有两种分支结构: if语句switch语句 if语句 一个if语句包含一个布尔表达式和一条或多条语句。 语法 If 语句的用语法如下: if(布尔表达式) {//如果布尔表达…...
【Unity每日一记】如何从0到1将特效图集制作成一个特效
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:Uni…...
磁力链接的示例与解释
磁力链接(Magnet URI scheme)是一种特殊类型的统一资源标识符(URI),它包含了通过特定散列函数(如SHA-1)得到的文件内容的散列值,而不是基于位置或名称的引用。这使得磁力链接成为在分…...
云存储中常用的相同子策略的高效、安全的基于属性的访问控制的论文阅读
参考文献为2022年发表的Efficient and Secure Attribute-Based Access Control With Identical Sub-Policies Frequently Used in Cloud Storage 动机 ABE是实现在云存储中一种很好的访问控制手段,但是其本身的计算开销导致在实际场景中应用收到限制。本论文研究了一种LSSS矩…...
JVM高级篇之GC
文章目录 版权声明垃圾回收器的技术演进ShenandoahShenandoah GC体验Shenandoah GC循环过程 ZGCZGC简介ZGC的版本更迭ZGC体验&使用ZGC的参数设置ZGC的调优 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马…...
第十四届蓝桥杯省赛大学C组(C/C++)三国游戏
原题链接:三国游戏 小蓝正在玩一款游戏。 游戏中魏蜀吴三个国家各自拥有一定数量的士兵 X,Y,Z(一开始可以认为都为 0)。 游戏有 n 个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 i 个事件发生时…...
java之static详细总结
static也叫静态,可以修饰成员变量、成员方法。 成员变量 按照有无static分为两种: 类变量:static修饰,属于类,与类一起加载一次,在内存中只有一份,会被类的全部对象共享实例变量(…...
RabbitMQ3.13.x之六_RabbitMQ使用场景
RabbitMQ3.13.x之六_RabbitMQ使用场景 文章目录 RabbitMQ3.13.x之六_RabbitMQ使用场景1. 为什么选择 RabbitMQ?1. 可互操作2. 灵活3. 可靠 2. 常见用户案例1. 服务解耦2. 远程过程调用3. 流处理4. 物联网 1. 为什么选择 RabbitMQ? RabbitMQ 是一个可靠且…...
C++ 类和对象(初篇)
类的引入 C语言中,结构体中只能定义变量,在C中,结构体内不仅可以定义变量,也可以定义函数。 而为了区分C和C我们将结构体重新命名成class去定义 类的定义 标准格式: class className {// 类体:由成员函…...
微软推出GPT-4 Turbo优先使用权:Copilot for Microsoft 365商业用户享受无限制对话及增强图像生成能力
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
Spring Boot Actuator
概述 Spring Boot Actuator是Spring Boot的一个功能模块,用于提供生产环境中常见的监控和管理功能。它提供了各种端点(endpoints),可以用于监视应用程序的运行状况、收集应用程序的指标数据以及与应用程序进行交互。 以下是Spri…...
我与C++的爱恋:类与对象(一)
🔥个人主页:guoguoqiang. 🔥专栏:我与C的爱恋 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C是基于面向对象的,关注的是对象&…...
os模块篇(十八)
文章目录 os._exit(n)os.forkpty()os.kill(pid, sig, /)os.killpg(pgid, sig, /)os.nice(increment, /)os.pidfd_open(pid, flags0)os.plock(op, /)os.popen(cmd, moder, buffering-1)os.posix_spawn(path, argv, env, *, file_actionsNone, setpgroupNone, resetidsFalse, set…...
Oracle 数据库工作中常用知识点:sql语法与常用函数
.to_date()函数 to_date函数是Oracle特有的函数,该函数用来做日期转换。 举例: SELECT TO_DATE(‘2006-05-01 19:25:34’, ‘YYYY-MM-DD HH24:MI:SS’) FROM DUAL 日期格式: YYYY、YYY、YY 分别代表4位、3位、2位的数字年 …...
软件工程
开发模型 瀑布模型 用于结构化模型开发 适用需求明确或者二次开发 原型模型 适用需求不明确 演化模型 增量模型 适用需求不明确 先做一块,再做一块,这样不断的对核心功能的审视,降低风险 螺旋模型 由多个模型组合成 适用需求不明…...
【御控物联】JavaScript JSON结构转换(17):数组To对象——键值互换属性重组
文章目录 一、JSON结构转换是什么?二、核心构件之转换映射三、案例之《JSON数组 To JSON对象》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么? JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换…...
免注册,ChatGPT可即时访问了!
AI又有啥进展?一起看看吧 Apple进军个人家用机器人 Apple在放弃自动驾驶汽车项目并推出混合现实头显后,正在进军个人机器人领域,处于开发家用环境机器人的早期阶段 报告中提到了两种可能的机器人设计。一种是移动机器人,可以跟…...
探索未来游戏:生成式人工智能AI如何重塑你的游戏世界?
生成式人工智能(Generative AI)正以前所未有的速度改变着各行各业的运作模式。其中,游戏产业作为科技应用的前沿阵地,正经历着前所未有的变革。本文将探讨生成式人工智能如何重塑游戏产业,以及这一变革背后的深远影响。…...
ubuntu23设置kibana后台启动服务
要在Ubuntu 23系统中设置Kibana作为系统服务,以便能够通过systemd管理其启动、停止、重启以及设置开机自动启动,可以按照以下步骤操作: 1. 创建Kibana systemd服务单元 创建一个名为kibana.service的文件在 /etc/systemd/system/ 目录下&am…...
身份证实名制、C#身份核验代码示例、身份证查询
在以前,企业采用人工审核的方式对线上用户进行身份信息真伪的核验,在用户上传身份信息后,人工进行后台审核,虽能满足企业对用户实名认证的需求,但效率慢、耗时长,且存在一定的人为误差,对高度PS…...
C++ 知识点22 函数模板
C 函数模板一、为什么要有函数模板?先看痛点:你要写两个交换函数,int 版、double 版:// int 交换 void swapInt(int &a, int &b) {int t a; a b; b t; } // double 交换 void swapDouble(double &a, double &b…...
HBase集群启动后秒退?手把手教你排查ZooKeeper路径配置与htrace-core缺失问题
HBase集群启动后秒退?深度排查ZooKeeper路径与依赖缺失问题 当你在深夜部署HBase集群时,看到服务启动后几秒钟内突然消失,那种感觉就像在黑暗中摸索开关。这不是简单的配置错误,而是系统在向你发出求救信号。让我们像侦探一样&…...
【2024独家首发】Red Cabbage印相参数矩阵表:17组实测--no stylize值×--sref权重×色域压缩阈值,精准复现植物染料氧化还原曲线
更多请点击: https://intelliparadigm.com 第一章:Red Cabbage印相的化学机理与Midjourney参数映射原理 花青素的pH响应性与图像显影基础 红甘蓝(Red Cabbage)提取液富含花青素(anthocyanin),…...
CANN/asc-devkit单核形状API文档
SetSingleShape 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode…...
Perplexity AI引用溯源功能上线72小时后,Nature/Science投稿拒稿率下降17.3%?,实证数据与3个必须启用的配置开关
更多请点击: https://intelliparadigm.com 第一章:Perplexity AI引用透明度功能详解 Perplexity AI 的引用透明度(Citation Transparency)功能是其区别于传统大语言模型的核心设计之一,它通过实时标注、可追溯来源与结…...
保姆级教程:用KIT_A2G_TC397_5V_TFT开发板快速上手CAN FD通信(附接线图)
保姆级教程:用KIT_A2G_TC397_5V_TFT开发板快速上手CAN FD通信(附接线图) 最近在车载通信项目中频繁接触CAN FD协议,发现很多工程师对硬件连接和基础配置存在畏难情绪。恰好手头有英飞凌KIT_A2G_TC397_5V_TFT这块开发板,…...
用Wireshark和Python脚本‘解剖’USB协议:一步步解析Device Qualifier Descriptor抓包数据
用Wireshark和Python脚本深度解析USB协议中的Device Qualifier Descriptor USB协议作为现代设备连接的标准之一,其底层通信机制对开发者而言既是挑战也是机遇。当我们面对一个支持多种速度模式的USB设备时,理解其在不同速率下的行为差异显得尤为重要。本…...
Linux I2C设备驱动避坑指南:以MPU6050为例,解决i2c_transfer返回EIO错误
Linux I2C设备驱动深度排障:MPU6050的EIO错误全解析 调试嵌入式设备时,最令人沮丧的莫过于那些间歇性出现的错误。它们像幽灵一样时隐时现,让开发者陷入无尽的猜测和试错循环。MPU6050作为一款广泛使用的运动传感器,其I2C接口的稳…...
编译原理实战:手把手教你化简DFA
1. 从零开始理解DFA化简 第一次接触DFA化简这个概念时,我盯着课本上那些复杂的箭头和状态图发了好一会儿呆。作为一个编译原理的初学者,最让我困惑的是:为什么已经有了能工作的DFA,还要费劲去化简它?直到在实际项目中遇…...
边缘计算中的AI优先设计:从芯片选型到模型部署的实战指南
1. 项目概述:为什么“AI优先”是边缘计算的必然选择 最近和几个做硬件和嵌入式开发的老朋友聊天,话题总绕不开一个词:AIoT。大家的感觉很一致,现在的项目要是没沾点“智能”的边,好像都不好意思拿出手。但真做起来&…...
