Java入门基础学习笔记22——程序流程控制

程序流程控制:控制程序的执行顺序。

程序有哪些执行顺序?

顺序、分支和循环。

分支结构:

if、switch

循环:

for、while、do-while

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

if分支:

根据条件(真和假)来决定执行某段代码。

说明:单分支、双分支、多分支。

package cn.ensource.branch;import java.util.Scanner;public class IfDemo1 {public static void main(String[] args) {// 目标:需要同学们掌握If分支的三种形式的用法和执行流程// 需求:测量用户体温、发现体温高于37度就报警double t = 38.9;if (t > 37) {System.out.println("这个人温度异常!");}// 需求:发红包、你的钱包余额是99元,现在要发出90元。// 如果钱够,触发发红包的动作,如果钱不够,则提示余额不足:double money = 99;if (money >= 90) {System.out.println("发红包成功了!");}else {System.out.println("余额不足!");}// 需求3: 某个公司有一个绩效系统,根据员工的打分输出对应的绩效级别。// [0-60] D [60-80] C [80-90] B [90-100] AScanner sc = new Scanner(System.in);System.out.println("请输入员工积分:");int score = sc.nextInt();if (score >= 0 && score < 60) {System.out.println("D");}else if(score >= 60 && score < 80) {System.out.println("C");}else if(score >= 80 && score < 90) {System.out.println("B");}else if(score >= 90 && score <= 100) {System.out.println("A");}else {System.out.println("您输入的积分有问题!");}}
}

如果if语句的{}中只有一行代码的情况,{}可以省略不写(但不推荐省略)。

import java.util.Scanner;public class Main {public static void main(String[] args) {System.out.println("start");Scanner sc = new Scanner(System.in);System.out.println("Please input a number(1-7):");int week = sc.nextInt();if(week == 1) {System.out.println("Monday");} else if(week == 2) {System.out.println("Tuesday");} else if(week == 3) {System.out.println("Wednesday");} else if(week == 4) {System.out.println("Thursday");} else if(week == 5) {System.out.println("Friday");} else if (week == 6) {System.out.println("Saturday");} else {System.out.println("Sunday");}System.out.println("End");}
}

switch分支:

是通过比较值来决定执行哪条分支。

switch分支的执行流程:

1)先执行表达式的值,再拿着这个值去与case后的值进行匹配;

2)与哪个case后面的值匹配值为true,就执行哪个case块的代码,遇到break,就跳出switch分支。

3)如果全部case后的值与之匹配都是false,则执行default块的代码。

案例:

package cn.ensource.branch;import java.util.Scanner;public class SwitchDemo2 {public static void main(String[] args) {//switch语句Scanner sc = new Scanner(System.in);System.out.println("请输入星期信息(示例:周一):");String week = sc.nextLine();switch (week) {case "周一":System.out.println("埋头苦干,解决bug。");break;case "周二":System.out.println("请大牛程序员帮忙。");break;case "周三":System.out.println("今晚啤酒、龙虾、小烧烤。");break;case "周四":System.out.println("主动帮助新来的女程序员解决bug。");break;case "周五":System.out.println("今晚吃鸡。");break;case "周六":System.out.println("与王婆介绍的小芳相亲。");break;case "周日":System.out.println("郁郁寡欢,准备上班。");break;default:System.out.println("您输入的星期信息不对!");}}
}

if、switch的比较,以及各自适合的应用场景?

if语句功能上远远强于switch。swith语句能搞定的事情,if都可以搞定。

如果当前的条件是区间的话,应该使用if分支结构。

当条件是与一个一个值比较的时候,switch分支是更合适的,格式良好、性能更好、代码优雅。

快速定位某个语句。

switch语句使用时的注意事项:

1)表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持Double、float、long。

long的值很大,分支很大,就没有意义了。

double类型在运算的时候,可能是不精确的。底层的运算机制。

2)case给出的值不允许重复,且只能是字面量,不能是变量。

3)正常使用switch语句的时候,不要忘记写break,否则会出现穿透现象。

忘记写break语句,程序继续往下执行。

Switch穿透性在某些情况下可以简化代码。

当存在多个case分支的代码相同的时候,可以把相同的代码放到一个case块中,其他的case块都通过穿透性透到该case执行代码即可,这样可以简化代码。

这样,很明显,代码简化了。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot上传文件到服务器(跨服务器上传)

目录 &#xff08;一&#xff09;上传文件到本地&#xff08;windows&#xff09; &#xff08;二&#xff09;上传文件到linux服务器 &#xff08;三&#xff09;跨服务器上传文件 &#xff08;一&#xff09;上传文件到本地&#xff08;windows&#xff09; 1.新建一个文件…

【OpenHarmony IDL工具规格及使用说明书】

OpenHarmony IDL工具规格及使用说明书 IDL接口描述语言简介 当客户端和服务器进行IPC通信时&#xff0c;需要定义双方都认可的接口&#xff0c;以保障双方可以成功通信&#xff0c;OpenHarmony IDL&#xff08;OpenHarmony Interface Definition Language&#xff09;则是一种…

Python代码:二、多行输出

1、题目 将字符串 Hello World! 存储到变量str1中&#xff0c;再将字符串 Hello Nowcoder! 存储到变量str2中&#xff0c;再使用print语句将其打印出来&#xff08;一行一个变量&#xff09;。 2、代码 import sys str1 Hello World! str2 Hello Nowcoder! print (str1,st…

Python 开发 框架安全:Django SQL注入漏洞测试.(CVE-2021-35042)

什么是 Django 框架 Django 是一个用 Python 编写的 Web 应用程序框架。它提供了许多工具和库&#xff0c;使得开发 Web 应用程序变得更加容易和高效。Django 遵循了“MTV”&#xff08;模型-模板-视图&#xff09;的设计模式&#xff0c;将应用程序的不同组件分离开来&#x…

解决kali Linux2024无法获取动态IPv4地址(DHCP)解决方案

用root用户启动终端 进入根目录&#xff0c;选择配置文件 cd到根目录下/../etc/network找到interfaces文件 编辑interfaces文件 vi interfaces&#xff0c;编辑interfaces文件 输入如下命令 打开虚拟网络编辑器 选择虚拟机选项卡&#xff0c;编辑&#xff0c;打开虚拟网络编…

AIGC行业现在适合进入吗

AIGC行业目前正处于快速发展阶段,市场需求正处于爆发期,上大学网&#xff08;www.sdaxue.com&#xff09;认为&#xff0c;对于有兴趣的个人或企业而言&#xff0c;现在可能是一个适合进入的时机&#xff0c;以下是具体的分析&#xff0c;供大家参考&#xff01; 一、AIGC行业前…

【电路笔记】-有源低通滤波器

有源低通滤波器 文章目录 有源低通滤波器1、概述2、有源低通滤波器2.1 一阶低通滤波器2.2 带放大功能的有源低通滤波器3、有源低通滤波器示例4、二阶低通有源滤波器通过将基本的 RC 低通滤波器电路与运算放大器相结合,我们可以创建一个具有放大功能的有源低通滤波器电路。 1、…

TikTok Shop认知课 打通TK小店全流程

资料 001-先导课.mp4 002-如何用思维导图工具做课程笔记.mp4 003-TTS入驻模式.mp4 004-如何获取店铺.mp4 005-TTS店铺注册全流程,mp4 006-店铺整体运营思路.mp4 007-运营的几个误区.mp4 008-新店起店准备工作,mp4 009-规店铺风控注意事项,mp4 010-店铺基础设置之店铺…

【数据结构】堆(超详细)

文章目录 前言堆的概念及结构堆的实现堆的向下调整算法&#xff08;建小堆为例&#xff09;堆的向上调整算法&#xff08;建小堆为例&#xff09;堆的初始化销毁堆堆的插入堆的删除(规定删堆顶的数据)取堆顶元素判断堆是否为空获取堆的个数 完整代码&#xff08;包括测试代码&a…

BUU-[极客大挑战 2019]Http

考察点 信息收集 http构造请求数据包 题目 解题步骤 参考文章&#xff1a;https://zhuanlan.zhihu.com/p/367051798 查看源代码 发现有一个a标签&#xff0c;但是οnclick"return false"就是点击后不会去跳转到Secret.php的页面 所以我就自己拼接url http://no…

JavaScript基础知识强化:变量提升、作用域逻辑及TDZ的全面解析

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 ⭐️ 引言&#x1f3af; 变量提升(Hoisting)&#x1f47b; 暂时性死区&#xff08;Temporal Dead Zone, TDZ&#xff09;解释&#x1f4e6; var声明&#x1f512; let与const声明&#x1f4d6; 函数声明 与 函数表达式函数声…

SprintBoot案例-增删改查

黑马程序员JavaWeb开发教程 文章目录 一、准备工作1. 准备数据库表1.1 新建数据库mytlias1.2 新建部门表dept1.3 新建员工表emp 2. 准备一个Springboot工程2.1 新建一个项目 3. 配置文件application.properties中引入mybatis的配置信息&#xff0c;准备对应的实体类3.1 引入myb…

Java类和对象(二)—— 封装,static 关键字与代码块

前言 在面向对象的编程语言中&#xff0c;有三大特性&#xff1a;封装、继承和多态~~ 今天我们就来学习封装的知识 封装 什么是封装 在现实生活中&#xff0c;我们经常使用手机来进行沟通与交流&#xff0c;实际上我们拿到的手机是被封装好的&#xff0c;精美的屏幕&a…

Pencils Protocol Season 2 收官在即,展望Season 3 及其权益

此前 Scroll 生态 LaunchPad &聚合收益平台 Pencils Protocol&#xff08;原 Penpad&#xff09;&#xff0c;推出了首个资产即其生态代币 PDD 的 Launch&#xff0c;Season 2 活动主要是用户通过质押 ETH 代币、组件战队等方式&#xff0c;来获得 Point 奖励&#xff0c;并…

Go微服务: 日志系统ELK核心架构设计

微服务日志系统建设 1 &#xff09;为什么需要日志系统 业务发展越来越庞大&#xff0c;服务器越来越多各种访问日志&#xff0c;应用日志&#xff0c;错误日志量越来越多&#xff0c;无法管理开发人员排查问题&#xff0c;需要到服务器上查日志 2 &#xff09;Elastic Stack…

【MySQL】表的增删改查 | CRUD | 新增 | 查询 | 修改 | 删除 | 数据库约束

文章目录 表的增删改查一、CRUD1.新增&#xff08;Create&#xff09;1.插入多行2.指定列多行插入3.插入datetime类型4.插入当前时间5.插入查询的结果 2.查询&#xff08;Retrieve&#xff09;1.全列查询 *2.指定列查询3.查询字段为表达式4.指定别名 as5.去重 distinct6.排序 o…

人物介绍模板 PSD 源文件免费获取

免费获取 下载链接在最后&#xff01; 下载链接在最后&#xff01; 下载链接在最后&#xff01; 下载链接在最后&#xff01; 下载链接在最后&#xff01; 链接&#xff1a;https://pan.baidu.com/s/1sq3e6djMdZt76Sh_uqVxWg 提取码&#xff1a;naun

WPF之DataGird应用

1&#xff0c;DataGrid相关属性 GridLinesVisibility&#xff1a;DataGrid网格线是否显示或者显示的方式。HorizontalGridLinesBrush&#xff1a;水平网格线画刷。VerticalGridLinesBrush&#xff1a;垂直网格线画刷。HorizontalScrollBarVisibility&#xff1a;水平滚动条可见…

SOLIDWORKS 2024云服务新功能

一、简单的分享一下&#xff0c;在线观看&#xff0c;轻松标记 在达索系统SOLIDWORKS 2024云服务中&#xff0c;您只需在达索系统SOLIDWORKS中点击按钮&#xff0c;就可以将当前的设计分享给其他人&#xff0c;无论是客户、供应商还是团队内部成员。共享的用户只要打开浏览器里…

C++:编程世界的永恒之石

在编程的广袤领域中&#xff0c;C犹如一块永恒的基石&#xff0c;历经岁月的洗礼&#xff0c;依旧坚固而璀璨。它的深厚底蕴、强大功能和广泛的应用领域&#xff0c;使其成为无数程序员心中的信仰与追求。 一、C&#xff1a;历史与传承的交汇点 C的历史可追溯到上世纪80年代&…