游乐游手机版
首页/编程语言/文章详情

JavaSE程序逻辑控制完整代码实例

时间:2026-06-14 06:51
系统讲解Java三大基本结构:顺序结构按书写顺序执行;选择结构含if-else范围判断与switch等值匹配;循环结构有for固定次数和while条件控制。通过成绩评级、闰年判定、星期课程、季节判断及水仙花数等案例演示实际应用。

学习目标

1. Java程序中逻辑控制语句的运用

Ja vaSE程序逻辑控制完整实例代码

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;
}

执行流程:

  1. 计算表达式值;
  2. 匹配对应case,执行代码块;
  3. 遇到break跳出,否则发生case穿透;
  4. 若没有匹配项,执行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);
            }
        }
    }
}

总结

  1. 顺序结构:代码从上至下,一句一句按顺序执行,如同流水账。
  2. 选择结构:程序遇到岔路口,根据不同条件走不同分支,类似做选择题。
  3. 循环结构:重复执行某件事,直到满足条件为止,好比跳绳数数。

核心记住:顺序是默认,选择靠if,重复用循环!

来源:https://www.jb51.net/program/365258id4.htm
上一篇Ubuntu上JSP页面乱码怎么解决 下一篇Java字节流FileInputStream与FileOutputStream入门到实践
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
AWS RDS 数据库配置入门与基础操作指南
编程语言 · 2026-07-10

AWS RDS 数据库配置入门与基础操作指南

本文介绍了AWSRDS的基本概念与核心价值,即提供托管式关系数据库服务,简化运维。详细阐述了创建RDS实例的关键配置步骤,包括引擎选择、实例规格、存储与网络设置。最后,指导读者如何通过多种方式安全连接至数据库实例,并开始进行数据操作,为后续应用开发奠定基础。

PHP MVC中AJAX请求无法调用控制器方法的原因与解决方案
编程语言 · 2026-07-10

PHP MVC中AJAX请求无法调用控制器方法的原因与解决方案

PHPMVC中AJAX请求返回整页HTML的常见原因是控制器方法未正确输出响应或未终止执行,导致框架渲染视图。解决方法是在控制器中设置JSON响应头、输出数据后调用exit()明确终止,同时前端使用小写url和dataType: "json "。

Go语言手动构造rsa.PublicKey:正确初始化大整数模数N完整指南
编程语言 · 2026-07-10

Go语言手动构造rsa.PublicKey:正确初始化大整数模数N完整指南

手动构造RSA公钥时,模数N为*big Int类型,不能直接使用超长十进制字面量,需通过SetString或UnmarshalText方法解析字符串。公钥指数E可直接赋值,推荐65537。生产环境应使用rsa GenerateKey生成密钥对,避免手动构造引发的安全和格式错误。

Go语言实现HTTP定时轮询监控多URL响应时间与状态检测
编程语言 · 2026-07-10

Go语言实现HTTP定时轮询监控多URL响应时间与状态检测

使用Go语言实现HTTP定时轮询监控,通过按行分割与Tab解析URL列表,避免闭包陷阱和nil指针,每个URL启动独立ticker安全并发请求,并配置超时控制与资源关闭,确保响应时间与状态码准确检测。

Tkinter中Label标签在主循环动态更新的正确方法
编程语言 · 2026-07-10

Tkinter中Label标签在主循环动态更新的正确方法

在Tkinter中正确动态更新标签的方法:将标签组件的textvariable参数绑定到一个StringVar变量,然后通过调用该变量的 set()方法更新其值,界面会自动刷新。这样避免直接修改text属性或调用update()。此做法实现数据与界面的解耦,代码更简洁,响应更及时,避免手动同步的闪烁,推荐做法。