国外做旅游攻略的网站好/百度贴吧官网
文章目录
- Java 程序逻辑控制:顺序、分支与循环结构全面解析
- 一、顺序结构
- 二、分支结构
- 2.1 if 语句
- 2.1.1 基本语法
- 2.1.2 if-else 语句
- 2.1.3 if-else if-else 语句
- 2.2 switch 语句
- 三、循环结构
- 3.1 while 循环
- 3.2 break 语句
- 3.3 continue 语句
- 3.4 for 循环
- 四、输入输出
- 4.1 输出到控制台
- 4.2 从键盘输入
- 五、猜数字游戏
- 六、总结与展望
Java 程序逻辑控制:顺序、分支与循环结构全面解析
💬 欢迎讨论:如果你在阅读过程中有任何疑问或想要进一步探讨的内容,欢迎在评论区留言!我们一起学习、一起成长。
👍 点赞、收藏与分享:如果你觉得这篇文章对你有帮助,记得点赞、收藏并分享给更多想了解 Java 编程的朋友!
🚀 继续学习之旅:在本篇文章中,我们将探讨 Java 程序的逻辑控制结构,包括顺序结构、分支结构以及循环结构。掌握这些基本概念将帮助你更好地理解 Java 编程,提升代码的可读性与灵活性。
一、顺序结构
顺序结构是最基础的控制结构,程序按照书写的顺序逐行执行,执行过程不发生跳转。每一行代码的执行顺序与它们在程序中的排列顺序相同。
System.out.println("开始程序");
System.out.println("执行步骤1");
System.out.println("执行步骤2");
在没有任何分支和循环结构时,程序的执行会按照顺序逐步进行。
二、分支结构
分支结构允许程序根据不同条件执行不同的代码块。Java 提供了 if
语句和 switch
语句来实现这一功能。
2.1 if 语句
if
语句用于根据布尔表达式的结果决定是否执行某一代码块。
2.1.1 基本语法
if (条件表达式) {// 条件为 true 时执行的代码
}
2.1.2 if-else 语句
if (条件表达式) {// 条件为 true 时执行的代码
} else {// 条件为 false 时执行的代码
}
2.1.3 if-else if-else 语句
当有多个条件时,可以使用 else if
来判断不同的条件。
if (score >= 90) {System.out.println("优秀");
} else if (score >= 80) {System.out.println("良好");
} else {System.out.println("不及格");
}
2.2 switch 语句
switch
语句允许根据不同的常量值执行不同的代码块。
switch (day) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;default:System.out.println("无效的星期");
}
-
多个case后的常量值不可以重复
-
switch的括号内只能是以下类型的表达式:
- 基本类型:byte、char、short、int,注意不能是long类型
- 引用类型:String常量串、枚举类型
-
break
别忘记加在合适的位置
switch(num) {case 1.0:System.out.println("hehe");break;case 2.0:System.out.println("haha");break;
}
// 编译出错
Test.java:4: 错误: 不兼容的类型: 从double转换到int可能会有损失
switch(num) {
^
1 个错误
三、循环结构
循环结构可以让某一段代码重复执行,直到满足特定的条件。Java 中常用的循环结构有 while
、for
和 do-while
。
3.1 while 循环
while
循环在满足条件时重复执行一段代码。
int i = 0;
while (i < 10) {System.out.println(i);i++;
}
- 代码示例1:计算 1! + 2! + 3! + 4! + 5!
int num = 1;
int sum = 0;
// 外层循环负责计算阶乘的和
while (num <= 5) {int factorResult = 1;int tmp = 1;// 里层循环负责完成阶乘的计算while (tmp <= num) {factorResult *= tmp;tmp++;}sum += factorResult;num++;
}
System.out.println("sum = " + sum);
- 代码示例2:计算 1 - 100 的和
int n = 1;
int result = 0;
while (n <= 100) {result += n;n++;
}
System.out.println(result);
执行结果
5050
- 代码示例3:计算 5 的阶乘
int num = 1;
int result = 1;
while (num <= 5) {result *= num;num++;
}
System.out.println(result);
执行结果
120
- 代码示例4:计算 1! + 2! + 3! + 4! + 5!
int num = 1;
int sum = 0;
// 外层循环负责计算阶乘的和
while (num <= 5) {int factorResult = 1;int tmp = 1;// 里层循环负责完成阶乘的计算while (tmp <= num) {factorResult *= tmp;tmp++;}sum += factorResult;num++;
}
System.out.println("sum = " + sum);
以下是你提供的图像内容的提取和分析:
while 循环使用中的常见问题与注意事项
注意事项:
- 和
if
类似,while
语句后面的语句可以不写{}
,但是不写的时候只能支持一条语句,建议还是加上{}
来提高代码的可读性和可维护性。 - 和
if
类似,while
后面的{}
建议和while
写在同一行,以确保代码结构的整洁。 - 和
if
类似,while
后面不要多写分号,否则可能导致循环条件num <= 10
恒成立,进而导致代码死循环。
int num = 1;
while (num <= 10); {System.out.println(num);num++;
}
执行结果:
[无任何输出,程序死循环]
解释:
- 在上述例子中,若在
while
循环条件后面不小心加了一个多余的分号,while
语句会变成一个空语句,导致死循环的发生。
3.2 break 语句
break
用于提前结束循环。
int i = 0;
while (i < 10) {if (i == 5) {break; // 当 i 等于 5 时跳出循环}System.out.println(i);i++;
}
3.3 continue 语句
continue
用于跳过当前的循环,直接进入下一次循环。
int i = 0;
while (i < 10) {if (i == 5) {i++;continue; // 跳过当前循环}System.out.println(i);i++;
}
3.4 for 循环
for
循环常用于已知循环次数的场景。
for (int i = 0; i < 10; i++) {System.out.println(i);
}
四、输入输出
4.1 输出到控制台
Java 提供了 System.out.println()
、System.out.print()
和 System.out.printf()
方法用于不同格式的输出。
System.out.println("Hello, World!");
System.out.printf("Formatted Number: %.2f\n", 3.14159);
- 格式化输出符号说明
这是一个关于格式化输出符号的表格,展示了不同的转换符号及其对应的类型和示例:
转换符号 | 类型 | 举例 |
---|---|---|
d | 十进制整数 | ("%d", 100) 输出:100 |
x | 十六进制整数 | ("%x", 100) 输出:64 |
o | 八进制整数 | ("%o", 100) 输出:144 |
f | 定点浮点数 | ("%f", 100f) 输出:100.000000 |
e | 指数浮点数 | ("%e", 100f) 输出:1.000000e+02 |
g | 通用浮点数 | ("%g", 100f) 输出:100.000 |
a | 十六进制浮点数 | ("%a", 100) 输出:0x1.9p6 |
s | 字符串 | ("%s", 100) 输出:100 |
c | 字符 | ("%c", '1') 输出:1 |
b | 布尔值 | ("%b", 100) 输出:true |
h | 散列码 | ("%h", 100) 输出:64 |
% | 百分号 | ("%.2f%%", 2/7f) 输出:0.29% |
- 使用
Scanner
获取输入并处理数据
以下是一个简单的例子,展示如何使用Scanner
类从用户获取输入并输出格式化结果:
import java.util.Scanner; // 需要导入 util 包Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
System.out.println("请输入你的工资:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名: " + name + "\n年龄: " + age + "\n工资: " + salary);
sc.close(); // 注意, 要记得调用关闭方法
执行结果:
请输入你的姓名:
张三
请输入你的年龄:
18
请输入你的工资:
1000
你的信息如下:
姓名: 张三
年龄: 18
工资: 1000.0
- 使用
Scanner
循环读取多个数据并计算平均值
这是一个使用 Scanner
类循环读取多个整数并计算总和与平均值的例子:
Scanner sc = new Scanner(System.in);
int sum = 0;
int num = 0;
while (sc.hasNextInt()) {int tmp = sc.nextInt();sum += tmp;num++;
}
System.out.println("sum = " + sum);
System.out.println("avg = " + sum / num);
sc.close();
执行结果:
10
40.0
50.5
^Z
sum = 150.5
avg = 30.1
注意事项:
- 当循环输入多个数据时,可以使用
ctrl + z
来结束输入(Windows 上使用ctrl + z
,Linux / Mac 上使用ctrl + d
)。 - 使用
Scanner
类进行输入时,要特别注意输入数据的类型和结束符号。
println
输出的内容自带\n
,print
不带\n
printf
的格式化输出方式和 C 语言的printf
是基本一致的.
4.2 从键盘输入
使用 Scanner
类可以从键盘读取用户输入。
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字:");
int num = sc.nextInt();
System.out.println("你输入的数字是:" + num);
sc.close();
五、猜数字游戏
在本节中,我们将使用条件语句和循环结构来完成一个简单的猜数字游戏。
系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 “低了”, 如果输入的数字比该随机数大, 提示 “高了” , 如果输入的数字和随机数相等, 则提示 “猜对了” .
import java.util.Random;
import java.util.Scanner;public class GuessNumberGame {public static void main(String[] args) {Random random = new Random();Scanner sc = new Scanner(System.in);int toGuess = random.nextInt(100) + 1;while (true) {System.out.println("请输入一个数字(1-100):");int guess = sc.nextInt();if (guess < toGuess) {System.out.println("低了");} else if (guess > toGuess) {System.out.println("高了");} else {System.out.println("猜对了!");break;}}sc.close();}
}
六、总结与展望
本篇文章介绍了 Java 中的逻辑控制结构,包括顺序结构、分支结构(if
语句和 switch
语句)以及循环结构(while
、for
、do-while
循环)。通过掌握这些基本控制结构,你将能够编写更加灵活且高效的 Java 程序。
接下来的文章,我们将深入探讨更复杂的编程概念,如数组、集合以及方法的使用,帮助你更好地实现更复杂的逻辑。继续关注,一起走向更高的编程境界!
以上就是关于【Java篇】行云流水,似风分岔:编程结构中的自然法则数据类型与变量:窥见程序的天地万象内容啦,各位大佬有什么问题欢迎在评论区指正,或者私信我也是可以的啦,您的支持是我创作的最大动力!❤️
相关文章:

【Java篇】行云流水,似风分岔:编程结构中的自然法则
文章目录 Java 程序逻辑控制:顺序、分支与循环结构全面解析一、顺序结构二、分支结构2.1 if 语句2.1.1 基本语法2.1.2 if-else 语句2.1.3 if-else if-else 语句 2.2 switch 语句 三、循环结构3.1 while 循环3.2 break 语句3.3 continue 语句3.4 for 循环 四、输入输…...

2.4 基于Vitest的单元测试基础设施搭建
文章目录 1. 现代单元测试体系解析测试金字塔演进Vitest核心定位2. 基础设施架构设计整体架构图3. 环境配置全流程3.1 基础环境搭建3.2 配置文件`vitest.config.ts`3.3 测试环境初始化4. 测试用例编写规范4.1 基础测试示例4.2 Vue组件测试4.3 异步逻辑测试5. Mock策略深度优化5…...

SqlSugar 进阶之原生Sql操作与存储过程写法 【ORM框架】
系列文章目录 🎀🎀🎀 .NET开源 ORM 框架 SqlSugar 系列 🎀🎀🎀 文章目录 系列文章目录一、前言 🍃二、用法介绍三、方法列表四、使用案例五、调用存储过程六、in参数用法七、SqlServer带Go的脚…...

Navicat Premium(数据库管理工具) v17.1.13 中文 Windows
介绍 Navicat Premium 是一款多功能的数据库管理工具,可以连接并管理主流的数据库系统,如MySQL、PostgreSQL、Oracle、SQL Server等。它提供了丰富的功能和强大的工具,可以帮助用户轻松地管理数据库,进行数据导入导出、查询、备份…...

IDEA(十一)调整新版本的工具栏显示Git操作(pull、commit、push、revert等)
目录 一、背景二、操作步骤2.1 开启新 UI 样式2.2 设置 Tool Window 工具栏 一、背景 好久没有更新 IDEA 了,更新之后发现 IDEA 的工具栏消失了。一番操作之后,终于把 IDEA 的工具栏的设置调整好了,在此进行记录调整步骤,供大家学…...

QoS质量配置
他们祝你挺拔,再挺拔一点;我只祝你,永远年少,永远一骑当先. 1. QoS的概念 QoS(服务质量)是指一个网络能够利用各种各样的基础技术向选定的网络通信提供更好 的服务的能力。这些基础技术包括:帧中继(FrameR…...

2024年群智能SCI1区TOP:混沌可行性恢复粒子群算法CEPSO,深度解析+性能实测
目录 1.摘要2.改进策略3.结果展示4.参考文献5.代码获取 1.摘要 本文研究了解决二阶段非线性固定费用运输问题(Two-stage NFCTP),该问题的特点是每条运输弧线都与固定费用和与运输量的平方成正比的变量费用相关联。由于涉及固定费用和非线性组…...

ORACLE EBS数据库RELINK方式搭建克隆环境
ORACLE EBS系统的数据库,一般都安装了很多特定功能的小补丁来解决特定的BUG;因此对于已经安装好的系统,想要克隆一套测试环境、搭建一个新的备机做测试等,如果按照生产环境标准,则需要安装大量补丁,带来很大…...

第十五届蓝桥杯省赛电子类单片机学习过程记录(客观题)
客观试题: 01.典型的BUCK电源电路包含哪些关键器件(ABCD) A. 电容 B. 二极管 C. 电感 D. MOSFET 解析: 典型的 BUCK 电源电路是一种降压型的直流-直流转换电路,它包含以下关键器件: A.电容:电容在电路中起到滤波的作用。输入电容用于平滑输入电压的波动,减少电源噪声对…...

使用 invideo ai 实现文生视频
https://ai.invideo.io 然后选ai生成视频 输入描述,点击生成 就可以得到视频了,可以下载...

5G技术与物联网融合:未来智慧城市的基石
一、智慧城市演进:从概念到落地的技术革命 1.1 全球智慧城市发展现状 2023年全球智慧城市市场规模突破$1.2万亿美元,中国以35%的占比领跑市场(数据来源:IDC)。典型应用成效: 交通效率:新加坡…...

蓝桥杯备赛-差分-重新排序
问题描述 给定一个数组 AA 和一些查询 Li,RiLi,Ri, 求数组中第 LiLi 至第 RiRi 个元素之和。 小蓝觉得这个问题很无聊, 于是他想重新排列一下数组, 使得最终每个查 询结果的和尽可能地大。小蓝想知道相比原数组, 所有查询结果的总和最多可 以增加多少? 输入格式 输…...

使用DeepSeek+蓝耘快速设计网页简易版《我的世界》小游戏
前言:如今,借助先进的人工智能模型与便捷的云平台,即便是新手开发者,也能开启创意游戏的设计之旅。DeepSeek 作为前沿的人工智能模型,具备强大的功能与潜力,而蓝耘智算云平台则为其提供了稳定高效的运行环境…...

基于Matlab设计GUI图像处理交互界面
Image-Processing-GUI 项目说明 本博文提供了完整的代码和使用教程,适合新入门的朋友参考,完整代码资源文件请转至文末的下载链接。 本项目是《Matlab实践》中图像处理软件题目,本项目实现的具体内容如下 基于Matlab设计GUI交互界面图像的…...

javase集合框架List篇
一、Vector和ArrayList、LinkedList联系和区别,分别的使用场景 ArrayList:底层是数组实现,线程不安全,查询和修改非常快,但是增加和删除慢 LinkedList: 底层是双向链表,线程不安全,查询和修改…...

浙江大学:DeepSeek行业应用案例集(153页)(文末可下载PDF)
浙江大学:DeepSeek行业应用案例集(153页)(文末可下载PDF) 全文链接:浙江大学:DeepSeek行业应用案例集(153页)(文末可下载PDF) | AI探金 全文链接&…...

【 IEEE出版 | 快速稳定EI检索 | 往届已EI检索】2025年储能及能源转换国际学术会议(ESEC 2025)
重要信息 主会官网:www.net-lc.net 【论文【】投稿】 会议时间:2025年5月9-11日 会议地点:中国-杭州 截稿时间:见官网 提交检索:IEEE Xplore, EI Compendex, Scopus 主会NET-LC 2025已进入IEEE 会议官方列表!&am…...

电路原理(电容 集成电路NE555)
电容 1.特性:充放电,隔直流,通交流 2.电容是通过聚集正负电荷来存储电能的 3.电容充放电过程可等效为导通回路 4.多电容并联可以把容量叠加,但是多电容串联就不会,只会叠加电容的耐压值。 6.电容充放电时相当于通路&a…...

记录小白使用 Cursor 开发第一个微信小程序(一):注册账号及下载工具(250308)
文章目录 记录小白使用 Cursor 开发第一个微信小程序(一):注册账号及下载工具(250308)一、微信小程序注册摘要1.1 注册流程要点 二、小程序发布流程三、下载工具 记录小白使用 Cursor 开发第一个微信小程序(…...

哪些业务场景更适合用MongoDB?何时比MySQL/PostgreSQL好用?
哪些业务场景更适合用MongoDB?何时比MySQL/PostgreSQL好用? 就像淘宝的个性化推荐需要灵活调整商品标签,MongoDB这种"变形金刚"式的数据库,在处理以下三类中国特色业务场景时更具优势: 一、动态数据就像&q…...

【从零开始学习计算机科学】计算机组成原理(二)信息表示与编码
【从零开始学习计算机科学】计算机组成原理(二)信息表示与编码 信息表示与编码进位计数制十进制(Decimal)二进制(Binary)十六进制(Hexadecimal)进位计数制之间的转换常用的信息分类与表示定点表示无符号数的编码正整数的表示原码表示法定点小数的原码表示定点整数的原码…...

【从零开始学习计算机科学】操作系统(五)处理器调度
【从零开始学习计算机科学】操作系统(五)处理器调度 处理器调度一些简单的短程调度算法的思路先来先服务(First-Come-First-Served,FCFS)优先级调度及其变种最短作业优先调度算法(SJF)--非抢占式最短作业优先调度算法(SJF)--抢占式最高响应比优先调度算法轮转调度算法…...

Flink之水印(watermark)的补充理解
水印(Watermark):用于事件时间处理,标记数据流的进度,解决乱序和延迟问题,触发窗口计算 一、Flink 水印的作用 处理乱序事件 水印(Watermark)是 Flink 用于处理事件时间&…...

数据结构全解析:从线性到非线性,优缺点与应用场景深度剖析
1. 线性数据结构 (1)数组(Array)(适合静态数据) 优点: 随机访问高效:通过索引可以直接访问元素,时间复杂度为 O(1)。 内存连续:数组在内存中是连续存储的&…...

《使用 Python Flask + MySQL + ECharts 构建销售数据看板》实战案例笔记
《使用 Python Flask + MySQL + ECharts 构建销售数据看板》实战案例笔记 技术栈说明 后端:Python 3.10 + Flask 框架数据库:MySQL前端:ECharts 5.4 + HTML/CSS数据可视化:柱状图 / 折线图 / 饼图 / 雷达图项目结构 project/ ├── server.py # 后端服务 └──…...

StringBuilder和StringJoiner的运用
package test12; import java.util.Scanner; import java.util.StringJoiner;public class Test { public static void main(String[] args) {/* String str "你玩的真好,下次别玩了,TMD,CNM";String[] arr {"TMD", &…...

科技创新:改变生活的力量与未来趋势
人工智能在智能客服中的应用越来越普遍。它改变了传统的客服模式。AI可以快速回答用户的问题,提高了客服效率和服务质量。 首先,人工智能能够处理大量信息。智能客服可以在几秒钟内回应客户的请求。这比人工客服快得多。客户不需要等待很久就能得到答案…...

Maven指定JDK
在使用 Maven 管理 Java 项目时,有时需要指定使用特定的 JDK 版本。这通常是因为项目需要与特定版本的 JDK 兼容,或者在不同的开发环境中需要确保使用正确的 JDK 版本。通常来说在IDEA工具中设置了正确的JDK版本,使用IDEA编译也不会有任何异常…...

Jenkins持续集成与Web前端、SpringBoot项目的部署
Jenkins是一个开源的持续集成(Continuous Integration, CI)和持续交付(Continuous Delivery, CD)工具,广泛应用于软件开发过程中。它基于Java开发,旨在提供一个开放易用的软件平台,帮助软件项…...

如何使用Opentelemetry+jaeger对Go与Java项目实现分布式链路追踪
本文介绍![如何使用Opentelemetryjaeger实现分布式链路追踪] 关于opentelemetry的介绍可以看下面的文章 https://blog.csdn.net/qq_62368250/article/details/143516314本文中相关图片以及源代码地址 https://github.com/wuchenyanghaoshuai/others/blob/main/step39/README.…...