JavaSE程序逻辑控制完整代码实例
系统讲解Java三大基本结构:顺序结构按书写顺序执行;选择结构含if-else范围判断与switch等值匹配;循环结构有for固定次数和while条件控制。通过成绩评级、闰年判定、星期课程、季节判断及水仙花数等案例演示实际应用。
学习目标
1. Java程序中逻辑控制语句的运用

2. Java输入与输出的实现方式
3. 独立完成综合案例的开发实战
摘要
本文系统梳理Java程序设计的三大基本结构,核心知识要点如下:
1. 顺序结构:代码按书写顺序逐行执行,如同流水账般自上而下,简单直接无需赘述。
2. 选择结构:可分为两条路径——if-else属于“条件判断”,依据布尔表达式选择不同分支,语法为 if(条件){…}else if(条件){…}else{…},适合范围判断如成绩评级、闰年判定;switch则是“查表跳转”,直接匹配选项值,语法为 switch(表达式){case 值: … break; default: …},适合等值判断如星期、季节,注意break防止case穿透。
3. 循环结构:for用于明确循环次数的场景,语法 for(起点;终点;步进){…},好比做100个俯卧撑;while用于不确定循环次数的场景,语法 while(条件){…},好比吃到饱为止。核心记忆:顺序为默认,选择靠if/switch,重复用for/while。三大结构灵活组合,即可解决诸如“找出水仙花数”之类的实际问题。
先直观认识一下什么是程序逻辑控制——本质上就是让代码按预期方式运行,核心包含三大结构:顺序、选择、循环。
1.顺序结构
顾名思义,代码按照书写顺序一条一条依次执行。
System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
//
运⾏结果如下
aaa
bbb
ccc
如果调整代码顺序,执行结果也会随之变化:
System.out.println("aaa");
System.out.println("ccc");
System.out.println("bbb");
//
运⾏结果如下
aaa
ccc
bbb
顺序结构非常直观,只需记住代码执行顺序与书写顺序一致即可。
2.分支结构
分支结构可以理解为程序中的“选择题”,让代码根据不同条件走不同的路径。
2.1 if-else
想象一个场景:走到岔路口,肚子饿了就去吃饭,累了就回家睡觉,否则继续散步。程序也是如此,if-else让代码在不同情况下执行不同逻辑。
if-else语法格式:
if(布尔表达式1){
// 满足表达式1执行此块
}else if(布尔表达式2){
// 满足表达式2执行此块
}else{
// 都不满足执行此块
}
注意:else if和else并非必需,具体取决于实际需求。
来看一个生活案例:小明考试,90分以上奖励麦当劳,80~90分奖励鸡腿,80分以下则接受惩罚。
int score = 79;
if(score > 90){
System.out.println("奖励一顿麦当劳!!!");
}else if(score<=90&&score>=80){
System.out.println("奖励一个大鸡腿!");
}else{
System.out.println("挨⼤嘴巴⼦!!!");
}
// 可怜的小明没吃上麦当劳也没鸡腿,只挨了一顿大嘴巴子……
综合案例:判断闰年
闰年规则:能被4整除且不能被100整除,或者能被400整除。
int year = 2000;
if ((year % 4 == 0&&year % 100 != 0)||year % 400 == 0) {
System.out.println("是闰年");
} else {
System.out.println("不是闰年");
}
2.2 switch语句
认识switch之前,先理解break——字面意思是“打破”,在循环中用于跳出当前循环并执行后续代码。
想象另一个场景:去快餐店点餐。
if-else方式:站在收银台前逐个询问“是汉堡吗?不是?那薯条吗?不是?……”
switch方式:直接看菜单,按编号点单,“我要3号套餐!”→直接取餐,干净利落。
switch就是程序中的“查表跳转”,直接匹配选项值,效率更高。
基本语法格式:
switch(表达式) {
case 值1:
// 变量等于值1时执行的代码
break;
case 值2:
// 变量等于值2时执行的代码
break;
default:
// 都不匹配时执行的代码
break;
}
执行流程:
- 计算表达式值;
- 匹配对应case,执行代码块;
- 遇到break跳出,否则发生case穿透;
- 若没有匹配项,执行default。
生活案例:星期几上什么课
int weekDay = 3; // 假设星期三
switch(weekDay) {
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;
default:
System.out.println("周末啦,放假休息!");
break;
}
// 输出:星期三:上化学和生物
综合练习:四季判断
根据月份判断所属季节。
int month = 7;
switch(month) {
case 3:
case 4:
case 5:
System.out.println("春季:春暖花开");
break;
case 6:
case 7:
case 8:
System.out.println("夏季:夏日炎炎");
break;
case 9:
case 10:
case 11:
System.out.println("秋季:秋高气爽");
break;
case 12:
case 1:
case 2:
System.out.println("冬季:白雪皑皑");
break;
default:
System.out.println("输入的月份有误!");
break;
}
// 输出:夏季:夏日炎炎
2.3 循环结构:for 和 while
通过对比来理解for和while的区别。想象做10个俯卧撑:
for循环:心里默念1,2,3…10,数到10自动停止;
while循环:做到没力气就停,不确定具体做多少个。
基本语法格式
for循环(明确循环次数):
for(起点; 终点条件; 每步动作) {
// 重复执行的代码
}
while循环(不确定次数):
while(条件成立) {
// 重复执行的代码
}
生活案例1:每天做100个俯卧撑
for(int i = 1; i <= 100; i++) {
System.out.println("第" + i + "个俯卧撑");
}
// 做满100个结束
生活案例2:吃包子,吃到撑为止
int 饱度 = 0;
while(饱度 < 10) { // 饱度小于10继续吃
System.out.println("再吃一个包子");
饱度++; // 每吃一个饱度+1
}
System.out.println("吃饱了!");
看完这两个案例,大致能看出for和while在代码实现上的差异。那什么时候该用for,什么时候用while?下面这张表格帮你理清思路:
| 场景 | for循环 | while循环 |
|---|---|---|
| 明确知道循环次数 | 首选 | 可以选 |
| 不确定循环次数(读文件等) | 不太适合 | 首选 |
| 一般计数任务 | 更简洁 | 代码稍复杂 |
通过以上内容,你已经掌握了三大基本结构——顺序、选择、循环。好比练武学会了基本拳法,但真正的功夫在于组合运用。下面,用刚学的三大结构解决一个经典问题:
求出0~999之间的所有水仙花数并输出。
水仙花数是指一个三位数,其各位数字的立方和等于该数本身,例如153 = 1³ + 5³ + 3³。
public class NarcissusNumbers {
public static void main(String[] args) {
System.out.println("0~999之间的水仙花数有:");
// 循环:从100到999(三位数)
for (int num = 100; num <= 999; num++) {
// 提取各位数字
int ge = num % 10; // 个位:153 % 10 = 3
int shi = num / 10 % 10; // 十位:153 / 10 = 15,15 % 10 = 5
int bai = num / 100; // 百位:153 / 100 = 1
// 计算立方和
int sum = ge*ge*ge + shi*shi*shi + bai*bai*bai;
// 判断:如果等于原数,就是水仙花数
if (sum == num) {
System.out.println(num);
}
}
}
}
总结
- 顺序结构:代码从上至下,一句一句按顺序执行,如同流水账。
- 选择结构:程序遇到岔路口,根据不同条件走不同分支,类似做选择题。
- 循环结构:重复执行某件事,直到满足条件为止,好比跳绳数数。
核心记住:顺序是默认,选择靠if,重复用循环!
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
AWS RDS 数据库配置入门与基础操作指南
本文介绍了AWSRDS的基本概念与核心价值,即提供托管式关系数据库服务,简化运维。详细阐述了创建RDS实例的关键配置步骤,包括引擎选择、实例规格、存储与网络设置。最后,指导读者如何通过多种方式安全连接至数据库实例,并开始进行数据操作,为后续应用开发奠定基础。
PHP MVC中AJAX请求无法调用控制器方法的原因与解决方案
PHPMVC中AJAX请求返回整页HTML的常见原因是控制器方法未正确输出响应或未终止执行,导致框架渲染视图。解决方法是在控制器中设置JSON响应头、输出数据后调用exit()明确终止,同时前端使用小写url和dataType: "json "。
Go语言手动构造rsa.PublicKey:正确初始化大整数模数N完整指南
手动构造RSA公钥时,模数N为*big Int类型,不能直接使用超长十进制字面量,需通过SetString或UnmarshalText方法解析字符串。公钥指数E可直接赋值,推荐65537。生产环境应使用rsa GenerateKey生成密钥对,避免手动构造引发的安全和格式错误。
Go语言实现HTTP定时轮询监控多URL响应时间与状态检测
使用Go语言实现HTTP定时轮询监控,通过按行分割与Tab解析URL列表,避免闭包陷阱和nil指针,每个URL启动独立ticker安全并发请求,并配置超时控制与资源关闭,确保响应时间与状态码准确检测。
Tkinter中Label标签在主循环动态更新的正确方法
在Tkinter中正确动态更新标签的方法:将标签组件的textvariable参数绑定到一个StringVar变量,然后通过调用该变量的 set()方法更新其值,界面会自动刷新。这样避免直接修改text属性或调用update()。此做法实现数据与界面的解耦,代码更简洁,响应更及时,避免手动同步的闪烁,推荐做法。
- 热门数据榜
相关攻略
2026-07-10 06:41
2026-07-10 06:40
2026-07-10 06:39
2026-07-10 06:39
2026-07-10 06:39
2026-07-10 06:39
2026-07-10 06:39
2026-07-10 06:39
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

