3.Java流程控制语句

一、今日核心知识点

编程不仅仅是按顺序执行代码,更重要的是让程序能够"做判断"和"重复做事"。今天我们将学习 ifswitch 以及循环结构。

1.判断语句

  • ‌**if-else 语句**‌:

    • 用于处理两种或多种情况。

    • 例如:如果年龄大于18岁,输出"成年",否则输出"未成年"。

  • ‌**switch-case 语句**‌:

    • 用于处理多个固定值的匹配(如星期几、月份、成绩等级)。

    • 注意 :Java 7 之后 switch 支持字符串 String 类型。记得在每个 case 后面加上 break,防止"穿透"执行下一个 case。

2.循环语句

  • ‌**for 循环**‌:

    • 最常用,适合已知循环次数的场景。

    • 结构:for (初始化; 布尔表达式; 更新) { 循环体 }

  • ‌**while 循环**‌:

    • 适合未知循环次数,只要条件为 true 就一直执行。
  • ‌**do-while 循环**‌:

    • 先执行一次循环体,再判断条件。保证循环体至少执行一次。

3.跳转语句

  • ‌**break**‌:跳出当前循环或 switch 语句。

  • ‌**continue**‌:跳过本次循环的剩余部分,直接进入下一次循环。

二、今日实操练习( IDEA 中完成)

请创建一个名为 Day03_ControlFlow 的类,并尝试编写以下代码:

  • 新建 Java 类

  • ‌右键点击‌ src 文件夹(或者你希望存放代码的具体包名/文件夹)。

  • 在弹出的菜单中选择 ‌New‌ -> ‌Java Class‌。

  • 在弹出的对话框中输入类名:‌Day03_ControlFlow‌。

  • 按 ‌Enter‌ 键确认。

1.:判断成绩等级(if-else + switch)

java 复制代码
public class Day03_ControlFlow {
    public static void main(String[] args) {
        int score = 85;

        // 1. 使用 if-else 判断及格与否
        if (score >= 60) {
            System.out.println("恭喜,你及格了!");
        } else {
            System.out.println("很遗憾,你需要补考。");
        }

        // 2. 使用 switch 判断等级
        // 先将分数转换为等级字符
        char grade;
        if (score >= 90) grade = 'A';
        else if (score >= 80) grade = 'B';
        else if (score >= 70) grade = 'C';
        else if (score >= 60) grade = 'D';
        else grade = 'E';

        switch (grade) {
            case 'A':
                System.out.println("等级:优秀");
                break;
            case 'B':
                System.out.println("等级:良好");
                break;
            case 'C':
                System.out.println("等级:中等");
                break;
            default:
                System.out.println("等级:需努力");
                break;
        }
    }
}
(1)基础变量定义

int score = 85;

//定义了一个整型变量 score 并赋值为 ‌85‌。这是后续所有判断逻辑的"输入数据"。

(2)if-else 判断

//检查 score 是否大于或等于 60 为真则执行if 为否则执行else

if (score >= 60) {

System.out.println("恭喜,你及格了!");

} else {

System.out.println("很遗憾,你需要补考。");

}

适用场景‌:适用于只有"是"或"否"两种结果的简单判断。

(3)多种声明变量
chart
  • 使用 chart 声明单字节 则需要单引号

char grade;

if (score >= 90) grade = 'A';

else if (score >= 80) grade = 'B';

...

else grade = 'E';

  • 使用时也需要单引号 case 'A' :

switch (grade) {

case 'A':

System.out.println("等级:优秀");

break;

case 'B':

System.out.println("等级:良好");

break;

default:

System.out.println("等级:需努力");

break;

}

String
  • 使用 String 声明为字符串 则需要双引号

String grade; // 声明为字符串

// 赋值时要用双引号

if (score >= 90) grade = "A";

else if (score >= 80) grade = "B";

// ...

// switch 也支持 String(Java 7+)

switch (grade) {

case "A": System.out.println("优秀"); break;

// ...

}

int

使用 int声明为数字 则需要数值

int grade;

if (score >= 90) grade = 1;

// ...

switch (grade) {

case 1: System.out.println("优秀"); break;

// ...

}

2:打印九九乘法表(for 循环嵌套)

java 复制代码
    public static void main(String[] args) {
        // 外层循环控制行数 (1到9)
        for (int i = 1; i <= 9; i++) {
            // 内层循环控制每行的列数 (1到i)
            for (int j = 1; j <= i; j++) {
                // \t 是制表符,用于对齐
                System.out.print(j + "*" + i + "=" + (i * j) + "\t");
            }
            // 每打印完一行后换行
            System.out.println();
        }
    }

3:猜数字小游戏(while 循环 + break)

java 复制代码
    public static void main(String[] args) {
        int target = 5; // 假设目标数字是5
        int guess = 0;  // 用户猜的数字
        
        // 模拟用户输入(这里用固定值演示逻辑,后续会学 Scanner 接收键盘输入)
        // 实际练习时,你可以手动修改 guess 的值来测试不同分支
        guess = 3; 
        
        while (guess != target) {
            if (guess < target) {
                System.out.println("猜小了!");
            } else {
                System.out.println("猜大了!");
            }
            // 为了演示,这里手动改变 guess,实际项目中会用 Scanner
            guess++; 
            if (guess > 10) break; // 防止死循环
        }
        
        if (guess == target) {
            System.out.println("恭喜你,猜对了!");
        }
    }

三、避坑指南

‌1.死循环‌:

在使用 while 循环时,一定要确保循环条件在某个时刻会变成 false,或者在循环体内有 break 语句,否则程序会一直运行停不下来。

‌2.大括号匹配‌:

嵌套循环或 if-else 时,大括号 {} 容易漏写或错位。建议在 IDEA 中使用快捷键 Ctrl + Alt + L 自动格式化代码,检查缩进是否整齐。

3‌.=== 的区别‌:

= 是赋值。

== 是比较两个值是否相等。

ifwhile 的条件中,永远使用 == 进行比较。

相关推荐
恋恋西风8 分钟前
C++ 理解 std::thread 在单核和多核上的行为差异
开发语言·c++
学长毕业设计9 分钟前
基于SpringBoot的公益基金管理系统(源码+文档+讲解视频)
java·spring boot·后端
Brilliantwxx11 分钟前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
东小西18 分钟前
【SAA实战】第 3 篇 · 工具调用全攻略:把业务能力交给 Agent 自己调度
java·后端·spring
东小西25 分钟前
【SAA实战】第 4 篇 · Agent 短期记忆:saver 让 Agent 跨轮记得住(threadId 隔离)
java·后端·spring
许彰午32 分钟前
22-DataCenter报文序列化
java·低代码·架构·状态模式
2601_962065251 小时前
[MySQL] SQL优化之性能分析
java·sql·mysql
BizzZ_1 小时前
C++(22)——类型转换和IO流
开发语言·c++
小范同学_1 小时前
JDK1.7 与 JDK1.8 HashMap 底层原理对比 + 数组并发扩容死循环详解
java·开发语言
geovindu1 小时前
CSharp: 万年历
开发语言·后端·c#·.net