[Java SE编程逻辑控制结构详解]

目录导航
1.线性执行流程
2.条件分支结构
2.1.条件判断语句
2.2.多路选择语句
3.条件与选择语句对比分析
4.重复执行结构
4.1.条件循环
4.2.计数循环
4.3.后验循环
4.4.循环中断
4.5.循环跳过
5.循环结构特性比较
6.数据交互处理
6.1.数据接收
6.2.信息展示
7.数字竞猜游戏


导言:尽管Java以面向对象编程为核心,但仍保留了结构化编程元素,主要包括三种控制结构:顺序执行、条件判断和循环迭代。本章将详细解析这些基础语法结构的使用规范、注意事项及典型应用场景,并通过实践练习强化语法掌握,最终实现一个数字猜测互动游戏。

1.线性执行流程

概念解析:代码中的语句按照书写顺序逐条执行,是最基础的程序执行方式。

System.out.println("Java编程");//输出Java编程
System.out.println("张三");//显示张三
System.out.println(3 + 4);//计算结果7

2.条件分支结构

基本原理:程序运行时根据特定条件选择执行不同的代码路径。
分支结构主要包含两种形式:条件判断和多路选择

2.1.条件判断语句

基础语法格式1:

if(条件判断){

执行代码段;

}


语法格式2:
if(条件表达式){
代码段A;
} else{
代码段B;
}


语法格式3:
if(条件1){
代码段1;
} else if(条件2){
代码段2;
} else{
默认代码段;
}

//条件判断语句示例
int userAge = 25;
if(userAge >= 18){//年龄判断
System.out.println("已成年");
}
//双分支结构
if(userAge > 22){
System.out.println("毕业生");
} else{
System.out.println("在校生");
}
//多条件判断
int examScore = 95;
if(examScore >= 90){
System.out.println("A级");
}else if(examScore >= 80){
System.out.println("B级");
}else if(examScore >= 60){
System.out.println("C级");
}else{
System.out.println("D级");
}

关键注意事项:
1.条件表达式必须返回布尔值
2.执行路径具有排他性
[Java SE编程逻辑控制结构详解]
3.else 子句遵循 "最近匹配原则",即与 最近的、未配对的 if 自动关联。
3.1.无括号时else 自动关联最近if
[Java SE编程逻辑控制结构详解]
3.2.使用花括号 可以明确控制结构范围。
[Java SE编程逻辑控制结构详解]


实践练习

//1. 数值奇偶性判定
int value = 24;
if(value % 2 == 0){
System.out.println(value + "是偶数");
}else{
System.out.println(value + "是奇数");
}
//2. 闰年判断算法
int currentYear = 2024;
if((currentYear % 4 == 0 && currentYear % 100 != 0) || (currentYear % 400 == 0) ){
System.out.println(currentYear + "是闰年");
}else{
System.out.println(currentYear + "是平年");
}

[Java SE编程逻辑控制结构详解]

2.2.多路选择语句

标准语法:

switch(选择表达式){
case 选项值1:
//对应代码
break;
case 选项值2:
//对应代码
break;
...
default:
//默认处理
break;
}

int weekDay = 5;
switch(weekDay){
case 1:
System.out.println("周一工作日");
break;
case 5:
System.out.println("周五工作日");
break;
case 6:
System.out.println("周末休息日");
break;
default:
System.out.println("无效输入");
break;
}
//输出:周五工作日

[Java SE编程逻辑控制结构详解]


重要限制条件:
1.选择表达式仅支持:整型、字符型、字符串和枚举类型。

浮点型为何不支持?

存在精度误差,无法精确匹配
[Java SE编程逻辑控制结构详解]


4.case标签必须为编译期常量

为何需要常量?

编译器需构建静态跳转表
[Java SE编程逻辑控制结构详解]


5.break语句防止case穿透
[Java SE编程逻辑控制结构详解]


3.条件与选择语句对比分析

对比维度 IF结构 SWITCH结构
条件类型 任意布尔表达式 离散值匹配
适用场景 范围判断 精确匹配
代码结构 条件嵌套 跳转表格
执行效率 顺序检测 直接跳转
> 选择建议:
> - 复杂条件 → if
> - 多值匹配 → switch
## 4.重复执行结构
循环机制包含三种形式:计数循环、条件循环和后验循环
### 4.1.条件循环
语法模板:
> while(继续条件){
> 循环体代码;
> }
//打印1-10序列
int counter = 1;
while(counter <= 10){
System.out.print(counter + " ");
counter++;
}
//输出:1 2 3 4 5 6 7 8 9 10

典型应用场景:不确定循环次数的操作

4.2.计数循环

标准语法:

for(初始值; 循环条件; 步进表达式){
循环代码块;
}

//计算1-100累加和
int total = 0;
for(int i = 1; i <= 100; i++){
total += i;
}
System.out.println("总和:" + total);

主要优势:适合已知迭代次数的场景

4.3.后验循环

语法结构:

do {

循环操作;

} while(循环条件);

//至少执行一次的验证
int input;
do {
System.out.print("请输入正数:");
input = scanner.nextInt();
} while(input <= 0);

特殊用途:必须执行一次的场景

5.循环结构特性比较

循环类型 最佳场景 执行特点 典型应用
for 明确迭代次数 先检测后执行 数组遍历
while 条件驱动 先检测后执行 输入验证
do-while 必须执行一次 先执行后检测 用户交互
## 6.数据交互处理
### 6.1.数据接收
标准输入流程:
1. 导入工具包:import java.util.Scanner;
2. 创建扫描器实例
3. 读取用户输入
Scanner inputReader = new Scanner(System.in);
System.out.print("请输入姓名:");
String name = inputReader.nextLine();
System.out.println("欢迎," + name);

[Java SE编程逻辑控制结构详解]

6.2.信息展示

输出方式对比:

System.out.println("自动换行输出");
System.out.print("同行输出");
System.out.printf("格式化输出:%d", 100);

7.数字竞猜游戏

游戏演示:
成功场景:
[Java SE编程逻辑控制结构详解]
实现代码:

import java.util.Random;
import java.util.Scanner;
public class NumberGame {
public static void main(String[] args) {
Random rand = new Random();
int secretNumber = rand.nextInt(100) + 1;
int attempts = 10;
while(attempts > 0){
System.out.print("猜数字(1-100):");
int guess = new Scanner(System.in).nextInt();
if(guess == secretNumber){
System.out.println("恭喜猜中!");
return;
} else if(guess < secretNumber){
System.out.println("猜小了");
} else {
System.out.println("猜大了");
}
attempts--;
}
System.out.println("机会用尽,正确数字是:" + secretNumber);
}
}
版权声明:程序员胖胖胖虎阿 发表于 2025年5月19日 上午11:58。
转载请注明:[Java SE编程逻辑控制结构详解] | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...