【JavaSE】逻辑控制语句
文章目录
- 一. 顺序结构
- 二. 分支结构
- 1. if 语句
- 2. switch 语句
- 3、循环结构
- 3.1 while 循环
- 3.2 do while 循环
- 3.3 for 循环
- 3.4 break 和 continue
- 三. 输入输出
- 1. 输出到控制台
- 2. 从键盘输入
一. 顺序结构
顺序结构比较简单,即程序按照代码书写的顺序一行一行执行下去。
如果调整代码的书写顺序,则执行顺序也发生变化:

二. 分支结构
1. if 语句
if 语句的基本语法形式包括以下三种:

代码示例
1、判定一个数字是奇数还是偶数
public static void main(String[] args) {int num = 13;if (num % 2 == 0) {System.out.println("偶数");} else {System.out.println("奇数");}
}
2、判定一个整数是正数还是负数
public static void main(String[] args) {int num = -10;if (num > 0) {System.out.println("num 是正数");} else if (num < 0) {System.out.println("num 是负数");} else {System.out.println("num 是0");}
}
3、判定某一年份是否是闰年
public static void main(String[] args) {int year = 2023;if (year%4 == 0 && year%100 != 0 || year%400 == 0) {System.out.println("是闰年");} else {System.out.println("不是闰年");}
}
注意事项
1、悬垂 else 问题
- if / else 语句中可以不加花括号,此时只能匹配一条语句

- 不加花括号时 else 总是和最近的 if 匹配

2、代码风格问题

3、分号问题
此处多写了一个分号,导致分号成为了 if 语句的语句体,而 { } 中的代码已经成为了和一个 if 无关的代码块,此时不论 if 成立于否 { } 代码块里的代码都会执行:
int x = 20;
if (x == 10); {System.out.println("hehe");
}
// 运行结果
hehe
2. switch 语句
语法格式如下:
switch(整数|枚举|字符|字符串) {case 内容1: {内容满足时执行语句;[break;]}case 内容2: {内容满足时执行语句;[break;]}...default: {内容都不满足时执行语句;[break;]}
}
几点说明
- 根据 switch 中值的不同,会执行对应的 case 语句。遇到 break 就会结束该 switch 语句。
- 如果 switch 中的值没有匹配的 case,就会执行 default 中的语句。
- 建议一个 switch 语句最好都要带上 default
- 注意 long、float、double 和 boolean 这几个基本类型的值不能做 switch 的参数。
代码示例
根据 day 的值输出星期几
int day = 3;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;}
}
3、循环结构
3.1 while 循环
循环条件为 true,则执行循环语句,否则结束循环。语法格式如下:
while(布尔表达式){循环语句;
}
注意事项
- 和 if 类似,while 下面的语句可以不写 { } ,但是不写的时候只能匹配一条语句。建议还是加上 { }
- 和 if 类似,while 后面的 { 建议和 while 写在同一行
代码示例
1、打印 1 - 10 的数字
int num = 1;
while(num <= 10){System.out.println(num++);
}
2、计算 1 - 100 的和
int num = 1;
int sum = 0;
while(num <= 100){sum += num;num += 1;
}
System.out.println(sum);
3、计算 5 的阶乘
int num = 1;
int ret = 1;
while(num <= 5){ret *= num;num += 1;
}
System.out.println(ret);
4、计算 1! + 2! + 3! + 4! + 5!
int num = 1;
int sum = 0;
// 外层循环求阶乘的和
while(num <= 5){// 那内层循环求每一个数的阶乘int tmp = 1;int fac = 1;while(tmp <= num){fac *= tmp;tmp += 1;}sum += fac;num += 1;
}
// 最后输出结果
System.out.println(sum);
3.2 do while 循环
语法格式如下,注意最后 while 后面要加个分号
do{循环语句;
}while(循环条件);
do while 不论条件成立与否,必定先执行一次循环语句,再判定循环条件:

3.3 for 循环
语法格式如下:
for(初始语句; 循环条件; 更新语句) {循环体;
}
相比于 while 循环,for 循环将初始语句、循环条件 和 更新语句合并在一起,这样写代码时不容易遗漏。
注意事项
- 和 if 类似,for 下面的语句可以不写 { } ,但是不写的时候只能支持一条语句。建议还是加上 { }。
- 和 if 类似,for 后面的 { 建议和 while 写在同一行。
- 建议有确定的循环次数时用 for;必须先执行一次循环体时用 do while;其他情况用 while。
代码示例
1、打印 1 - 10 的数字
for(int i = 0; i <= 10; ++i) {System.out.println(i);
}
2、计算 1 - 100 的和
int sum = 0;
for(int i = 0; i <= 100; ++i) {sum += i;
}
System.out.println(sum);
3、计算 5 的阶乘
int ret = 1;
for(int i = 1; i <= 5; ++i){ret *= i;
}
System.out.println(ret);
4、计算 1! + 2! + 3! + 4! + 5!
int sum = 0;
for(int i = 1; i <= 5; ++i){int fac = 1;for(int j = 1; j <= i; ++j){fac *= j;}sum += fac;
}
System.out.println(sum);
3.4 break 和 continue
break:执行此语句时,退出匹配最近的循环。
continue:执行此语句时,会立刻进入下次循环(判定循环条件)。
注意:break 和 continue 都必须用在循环中【特殊:beak 还可以用在 switch 中】,二者不适用于 if 语句。
三. 输入输出
1. 输出到控制台
Java 中常用输出语句有以下三种形式:
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.println(msg);// 输出一个字符串, 带换行
System.out.printf(format, msg);// 格式化输出
说明:
- println 输出的内容自带 \n,print 不带 \n
- printf 的格式化输出方式和 C 语言的 printf 是基本一致的
2. 从键盘输入
我们在做 OJ 时经常要用到从键盘输入 n 组数据,模板大致如下:

注意事项
- 使用 Scanner 需要导入 util 包
- 当循环输入多个数据的时候,使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z,Linux / Mac 上使用 ctrl +d)
相关文章:
【JavaSE】逻辑控制语句
文章目录一. 顺序结构二. 分支结构1. if 语句2. switch 语句3、循环结构3.1 while 循环3.2 do while 循环3.3 for 循环3.4 break 和 continue三. 输入输出1. 输出到控制台2. 从键盘输入一. 顺序结构 顺序结构比较简单,即程序按照代码书写的顺序一行一行执行下去。 …...
Motionbuilder系统文件说明
安装路径 Motionbuilder 默认的安装路径在 C:\Program Files\Autodesk\MotionBuilder\ 用户数据(user data) 位于安装路径下的 bin\config 非管理员用户的配置文件路径 Motionbuilder会将配置文件备份到 \Users[user]\AppData\Local\Autodesk[MotionBuilder] 当用户第一次打开…...
【我的Android开发】AMS中Activity栈管理
概述 Activity栈管理是AMS的另一个重要功能,栈管理又和Activity的启动模式和startActivity时所设置的Flag息息相关,Activity栈管理的主要处理逻辑是在ActivityStarter#startActivityUnchecked方法中,本文也会围绕着这个方法进进出出…...
C++源程序的构成————学习笔记
以下内容为,在学校上课时的课堂总结,偶尔我也会扩展一些内容内容仅供参考,欢迎大佬的指正简单的C程序#include <iostream> using namespace std;int main() {int x0;int y 0;cout << "请输入x,y的值"<<endl;cin…...
Spark Catalyst
Spark Catalyst逻辑计划逻辑计划解析逻辑计划优化Catalyst 规则优化过程物理计划Spark PlanJoinSelection生成 Physical PlanEnsureRequirementsSpark SQL 端到端的优化流程: Catalyst 优化器 : 包含逻辑优化/物理优化Tungsten : Spark SQL的优化过程 : 逻辑计划 …...
element 远程搜索下拉加载
created() { this.getList(); this.getGroupList(); }, directives: { /** 下拉框懒加载 */ “el-select-loadmore”: { bind(el, binding) { const SELECTWRAP_DOM el.querySelector( “.el-select-dropdown .el-select-dropdown__wrap” ); SELECTWRAP_DOM.addEventListener…...
空间复杂度与顺序表的具体实现操作(1)
最近更新的少,主要是因为参加了ACM竞赛空间复杂度空间复杂度也是一个数学表达式,是对一个算法在运行过程中临时占用存储空间大小的量度 。空间复杂度不是程序占用了多少bytes的空间,因为这个也没太大意义,所以空间复杂度算的是变量…...
【springmvc】Rest ful风格
RESTful 1、RESTful简介 REST:Representational State Transfer,表现层资源状态转移。 a>资源 资源是一种看待服务器的方式,即,将服务器看作是由很多离散的资源组成。每个资源是服务器上一个可命名的抽象概念。因为资源是一…...
华为OD机试真题Python实现【用户调度】真题+解题思路+代码(20222023)
用户调度 题目 在通信系统中有一个常见的问题是对用户进行不同策略的调度,会得到不同系统消耗的性能。 假设由N个待串行用户,每个用户可以使用A/B/C三种不同的调度策略。 不同的策略会消耗不同的系统资源,请你根据如下规则进行用户调度,并返回总的消耗资源数。 规则是: …...
JavaSE学习笔记总结day19
今日内容 二、线程安全的集合 三、死锁 四、线程通信 五、生产者消费者 六、线程池 零、 复习昨日 创建线程的几种方式 1) 继承 2) 实现Runnable 3) callable接口 Future接口 4) 线程池 启动线程的方法 start() 线程的几种状态 什么是线程不安全 setName getName Thread.curr…...
FreeSql使用
目的: 1.方库分表 2.主从分离 3.分布式事务 过程: 官网:指南 | FreeSql 官方文档 1.Startup.cs 添加配置(本地数据库MySql) ConfigureServices: Func<IServiceProvider, IFreeSql> fsql r >{IFreeSql …...
Hadoop集群搭建,基于3.3.4hadoop和centos8【图文教程-从零开始搭建Hadoop集群】,常见问题解决
Hadoop集群搭建,基于3.3.4hadoop和centos8【小白图文教程-从零开始搭建Hadoop集群】,常见问题解决Hadoop集群搭建,基于3.3.4hadoop1.虚拟机的创建1.1 第一台虚拟机的创建1.2 第一台虚拟机的安装1.3 第一台虚拟机的网络配置1.3.1 主机名和IP映…...
UE4 材质学习 (焚烧材质)
效果步骤随便从网上下载一张图片(地址:链接/链接),导入UE中新建一个材质函数这里命名为“E_Function”双击打开该材质函数,由于需要输出变发光和变透明两种效果,因此这里需要两个输出节点:分别命…...
【c++】STL常用算法2—常用查找算法
文章目录常用查找算法findfind_ifadjacent_findbinary_searchcountcount_if常用查找算法 算法简介: find//查找元素 find_if//按条件查找元素 adjacent_find//查找相邻重复元素 binary_search//二分查找法 count//统计元素个数 count_if//按条件统计元素个数find …...
史上最全最详细的Java架构师成长路径图,程序员必备
从新手码农到高级架构师,要经过几步?要多努力,才能成为为人倚重的技术专家?本文将为你带来一张程序员发展路径图,但你需要知道的是,天下没有普适的道理,具体问题还需具体分析,实践才…...
第五章 事务管理
1.事务概念 *什么是事务:事务是数据库操作最基本单元,逻辑上是一组操作,要么都成功,要么都失败 *事务的特性(ACID):原子性、隔离性、一致性、持久性 2.搭建事务操作环境 *模拟场景ÿ…...
Redis:主从同步
Redis:主从同步一. 概述二. 原理(1) 全量同步(2) 增量同步(3) 优化Redis主从集群三. 总结一. 概述 引入: Redis主从集群采用一个Master负责写,多个Slave负责读的方式(读多写少),那么如何让读取数据时多个从…...
Unity Animator.Play(stateName, layer, normalizedTime) 播放动画函数用法
原理 接口: public void Play(string stateName, int layer -1, float normalizedTime float.NegativeInfinity);参数含义stateName动画状态机的某个状态名字layer第几层的动画状态机,-1 表示播放第一个状态或者第一个哈希到的状态normalizedTime从s…...
python学习——【第三弹】
前言 上一篇文章 python学习——【第二弹】中学习了python中的运算符内容,这篇文章接着学习python中的流程控制语句。 流程控制指的是代码运行逻辑、分支走向、循环控制,是真正体现我们程序执行顺序的操作。流程控制一般分为顺序执行、条件判断和循环控…...
科技云报道:AI大模型背后,竟是惊人的碳排放
科技云报道原创。 自从ChatGPT这样的大型语言模型在全球引起轰动以来,很少有人注意到,训练和运行大型语言模型正在产生惊人的碳排放量。 虽然OpenAI和谷歌都没有说过他们各自产品的计算成本是多少,但据第三方研究人员分析,ChatG…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
rknn toolkit2搭建和推理
安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 ,不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源(最常用) conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...
高防服务器价格高原因分析
高防服务器的价格较高,主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因: 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器,因此…...
k8s从入门到放弃之Pod的容器探针检测
k8s从入门到放弃之Pod的容器探针检测 在Kubernetes(简称K8s)中,容器探测是指kubelet对容器执行定期诊断的过程,以确保容器中的应用程序处于预期的状态。这些探测是保障应用健康和高可用性的重要机制。Kubernetes提供了两种种类型…...
AWS vs 阿里云:功能、服务与性能对比指南
在云计算领域,Amazon Web Services (AWS) 和阿里云 (Alibaba Cloud) 是全球领先的提供商,各自在功能范围、服务生态系统、性能表现和适用场景上具有独特优势。基于提供的引用[1]-[5],我将从功能、服务和性能三个方面进行结构化对比分析&#…...
