跟der包学习java_day4「流程控制语句」

今日目标

掌握分支结构:if 语句(单分支、双分支、多分支)和 switch 语句掌握循环结构:for 循环、while 循环、do-while 循环学会用流程控制实现简单的逻辑(如判断成绩等级、循环打印等)

一、分支结构:根据条件执行不同代码

1. if 语句(最常用)

if 语句根据 “条件是否成立”(布尔值 true/false)来决定是否执行某段代码,有三种形式:

(1)单分支:满足条件才执行


if (条件) {
    // 条件为true时执行的代码
}

示例:判断一个数是否为正数



int num = 5;
if (num > 0) {
    System.out.println(num + "是正数"); // 执行:5是正数
}
(2)双分支:满足条件执行 A,否则执行 B


if (条件) {
    // 条件为true时执行(A)
} else {
    // 条件为false时执行(B)
}

示例:判断一个数是奇数还是偶数



int num = 7;
if (num % 2 == 0) { // 除以2余数为0 → 偶数
    System.out.println(num + "是偶数");
} else {
    System.out.println(num + "是奇数"); // 执行:7是奇数
}
(3)多分支:多个条件依次判断,满足一个就执行对应代码


if (条件1) {
    // 条件1为true时执行
} else if (条件2) {
    // 条件1为false,条件2为true时执行
} else if (条件3) {
    // 前面条件都为false,条件3为true时执行
} else {
    // 所有条件都为false时执行(可选)
}

示例:根据分数判断等级(0-100 分)



int score = 85;
if (score >= 90 && score <= 100) {
    System.out.println("优秀");
} else if (score >= 80) { // 前面已排除≥90的情况,这里实际是80-89
    System.out.println("良好"); // 执行:良好
} else if (score >= 60) { // 60-79
    System.out.println("及格");
} else if (score >= 0) { // 0-59
    System.out.println("不及格");
} else {
    System.out.println("分数无效");
}

注意

条件必须是布尔表达式(结果为 true/false)。若代码块只有一行,大括号
{}
可以省略(但建议不省,避免出错)。多分支中,只要有一个条件满足,就会跳过后面所有判断。

2. switch 语句(多值匹配)

当需要根据一个变量的 “具体值” 执行不同代码时,用 switch 比多分支 if 更简洁(适合值为整数、字符、字符串的情况)。



switch (变量) {
    case 值1:
        // 变量等于值1时执行
        break; // 跳出switch(必须加,否则会继续执行下一个case)
    case 值2:
        // 变量等于值2时执行
        break;
    ...
    default:
        // 变量不等于任何case值时执行(可选)
        break;
}

示例:根据星期几输出对应的活动



int day = 3; // 1-7代表周一到周日
switch (day) {
    case 1:
        System.out.println("周一:开会");
        break;
    case 2:
    case 3: // 多个case可以执行同一代码(周二和周三都上课)
        System.out.println("上课");
        break;
    case 6:
    case 7:
        System.out.println("休息");
        break;
    default:
        System.out.println("正常上班");
        break;
}
// 输出:上课(因为day=3)

注意

switch 后的变量类型只能是:byte、short、int、char、String(Java 7+)、枚举。
break
的作用是跳出 switch,若省略,会从匹配的 case 开始,继续执行后面所有 case(称为 “穿透”)。
default
可选,位置不限(通常放最后)。

二、循环结构:重复执行某段代码

当需要多次执行相同或相似的代码时(如打印 1-100 的数字),用循环可以大幅简化代码。

1. for 循环(最常用,适合已知循环次数)

格式:



for (初始化; 循环条件; 迭代) {
    // 循环体(重复执行的代码)
}

初始化:循环开始前执行一次(通常定义循环变量)。循环条件:每次循环前判断,为 true 则执行循环体,否则结束循环。迭代:每次循环体执行完后执行(通常更新循环变量,如 i++)。

示例 1:打印 1-5 的数字



for (int i = 1; i <= 5; i++) {
    System.out.println(i);
}
// 输出:1 2 3 4 5(每行一个)

示例 2:计算 1-100 的总和



int sum = 0;
for (int i = 1; i <= 100; i++) {
    sum += i; // 累加:sum = sum + i
}
System.out.println("1-100的和:" + sum); // 输出:5050
2. while 循环(适合未知循环次数,只知道结束条件)

格式:



初始化;
while (循环条件) {
    // 循环体
    迭代; // 别忘了更新条件,否则可能无限循环
}

示例:计算从 1 开始累加,直到和大于 1000 时的总和



int sum = 0;
int i = 1;
while (sum <= 1000) {
    sum += i;
    i++;
}
System.out.println("总和首次超过1000时:" + sum); // 输出:1035(1+2+...+45=1035)
3. do-while 循环(先执行一次循环体,再判断条件)

格式:



初始化;
do {
    // 循环体(至少执行一次)
    迭代;
} while (循环条件); // 注意这里有分号

示例:让用户输入数字,直到输入 0 为止



Scanner scanner = new Scanner(System.in);
int num;
do {
    System.out.print("请输入一个数字(输入0结束):");
    num = scanner.nextInt();
    System.out.println("你输入了:" + num);
} while (num != 0);
// 运行流程:先输入数字,打印,再判断是否为0,不为0就重复

三种循环的区别

for:循环变量的作用域仅限循环内,适合次数明确的场景。while:先判断后执行,可能一次都不执行。do-while:先执行后判断,至少执行一次。

4. 循环控制:break 和 continue


break
:直接跳出当前循环(结束循环)。
continue
:跳过本次循环剩下的代码,直接进入下一次循环。

示例 1:break 的使用(找到 100 以内第一个能被 13 整除的数)



for (int i = 1; i <= 100; i++) {
    if (i % 13 == 0) {
        System.out.println("第一个能被13整除的数:" + i); // 13
        break; // 找到后立即跳出循环
    }
}

示例 2:continue 的使用(打印 1-10 中的奇数)



for (int i = 1; i <= 10; i++) {
    if (i % 2 == 0) {
        continue; // 如果是偶数,跳过后面的打印,直接进入下一次循环
    }
    System.out.println(i); // 输出:1 3 5 7 9
}

三、练习

分支练习:输入一个年份,判断是否为闰年(闰年条件:能被 4 整除且不能被 100 整除,或能被 400 整除)。

循环练习:打印 100 以内所有能被 3 整除的数,每行打印 5 个。

综合练习:用循环计算斐波那契数列的前 10 项(数列规则:第 1 项 = 1,第 2 项 = 1,从第 3 项起,每项 = 前两项之和:1,1,2,3,5,8…)。

今日总结

分支结构

if 语句:单分支(if)、双分支(if-else)、多分支(if-else if-else),适合复杂条件判断。switch 语句:适合根据变量的具体值匹配执行,注意加
break
避免穿透。
循环结构
for:适合已知循环次数(如遍历 1-100)。while:适合未知次数,先判断后执行。do-while:至少执行一次,先执行后判断。
循环控制:
break
跳出循环,
continue
跳过本次循环。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
知名养生玩家的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容