62 0

[作业] Java流程控制三要素:顺序、分支与循环全解析 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

80%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
30 点
帖子
2
精华
0
在线时间
0 小时
注册时间
2018-11-15
最后登录
2018-11-15

楼主
百分之五十度灰 发表于 2025-12-9 16:58:25 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

在大多数高级编程语言中,包括Java在内,流程控制结构主要分为三种:顺序结构、选择结构和循环结构。这些结构是程序逻辑构建的基础。

顺序结构是指代码按照从上到下的顺序依次执行,这是程序运行的默认方式,无需额外控制语句干预。因此,关于顺序结构的理解相对直观,不需要过多解释。

[此处为图片1]

选择结构则允许程序根据不同的条件执行不同的代码块,主要包括两种形式:if 条件判断和 switch 分支选择。

if 条件选择

if 语句可以根据条件的真假来决定是否执行某段代码。它有几种常见的写法:单纯的 if、if-else 配合使用,以及 if-else if-else 的多条件判断结构。

在纯 if 结构中,只有当括号内的条件为 true 时,才会执行对应的代码块;否则跳过该部分。例如,在以下代码中,由于 a > b 不成立(即值为 false),所以不会输出“a大于b”这句话。之后程序继续按顺序执行下一条打印语句。

public class Demo5 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        if (a > b) {
            System.out.println("a大于b");
        }
        System.out.println("程序结束");
    }
}

而在 if-else 结构中,若条件满足,则执行 if 对应的代码块;否则执行 else 中的内容。比如下面的例子中,因为 a >= b 为 false,因此会进入 else 分支,输出“a小于b”,随后继续执行后续的顺序语句。

public class Demo6 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        if (a >= b) {
            System.out.println("a大于等于b");
        } else {
            System.out.println("a小于b");
        }
        System.out.println("程序结束");
    }
}

对于 if-else if-else 这种多层判断结构,系统会依次检查每个条件,一旦某个条件成立,就执行对应分支并结束整个结构(后续 else 不再判断)。如果所有 if 和 else if 的条件都不满足,则最终执行 else 中的代码。如下例所示,先判断 a > b 和 a == b 均不成立,于是进入 else 分支输出“a小于b”。

public class Demo7 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        if (a > b) {
            System.out.println("a大于b");
        } else if(a == b) {
            System.out.println("a等于b");
        } else {
            System.out.println("a小于b");
        }
        System.out.println("程序结束");
    }
}

Switch 条件选择

除了 if 系列之外,Java 还提供了 switch-case 结构用于实现多分支选择。该结构适用于一个变量与多个固定值进行比较的场景。

switch 后面的表达式可以返回 char、int 类型,甚至支持 String 等引用类型。当表达式的值与某个 case 后的常量匹配时,程序就会执行该 case 下的代码块。如果没有匹配项,则执行 default 分支(default 是可选的)。

以下是一个判断字符是否为 'a'、'b'、'c' 或 'd' 的示例:

public class Demo8 {
    public static void main(String[] args) {
        // 编写一个switch case结构,判断一个字符是否是字母a、b、c、d
        char ch = 'a';
        switch (ch) {
            case 'a': {
                System.out.println("字母a");
                break;
            }
            case 'b': {
                System.out.println("字母b");
                break;
            }
            case 'c': {
                System.out.println("字母c");
                break;
            }
            case 'd': {
                System.out.println("字母d");
                break;
            }
            // default非必须
            default: {
                System.out.println("不是字母a、b、c、d");
            }
        }
    }
}

输出结果为:

字母a
进程已结束,退出代码为 0

需要注意的是,每个 case 分支末尾通常需要添加 break 语句,以防止出现“case穿透”现象——即一个 case 执行完后未中断,会继续执行下一个 case 的内容,即使其值并不匹配。这种行为虽然在某些特殊情况下有用,但通常不符合预期,容易引发逻辑错误,需特别留意。

[此处为图片2]

public static void main(String[] args) {
    // 使用switch case语句判断字符是否为a、b、c、d之一
    char ch = 'a';
    switch (ch) {
        case 'a': {
            System.out.println("字母a");
            // 无break,会继续执行下一个case
        }
        case 'b': {
            System.out.println("字母b");
        }
        case 'c': {
            System.out.println("字母c");
        }
        case 'd': {
            System.out.println("字母d");
        }
        default: {
            System.out.println("不是字母a、b、c、d");
        }
    }
}
输出结果如下: 字母a 字母b 字母c 字母d 不是字母a、b、c、d 进程已结束,退出代码为 0

循环结构概述

Java 提供了多种循环控制结构,主要包括:while 循环、do-while 循环、for 循环以及用于遍历数组的增强型 for 循环(也称 foreach 循环)。

while 循环

其基本语法格式如下: while(布尔表达式) {
    // 循环体
}
当布尔表达式的值为 true 时,程序会执行大括号内的循环体。通常情况下,初始条件设置为 true,在循环过程中通过变量更新使条件最终变为 false,从而终止循环。若未设置合理的退出条件,则可能造成死循环。 在某些特殊场景中,例如网络请求监听,需要持续运行,此时可使用恒真条件: while(true) {
    // 持续执行的操作,如监听客户端连接
}
[此处为图片1] 以下是一个利用 while 循环计算 1 到 100 所有整数之和的示例:
public class Demo1 {
    public static void main(String[] args) {
        int sum = 0;
        int i = 1;
        while(i <= 100) {
            sum += i;
            i++;
        }
        System.out.println(sum); // 输出:5050
    }
}

do-while 循环

与 while 不同的是,do-while 循环先执行一次循环体,再判断布尔表达式是否成立。因此,无论条件是否满足,循环体至少会被执行一次。其结构如下: do {
    // 循环体
} while (布尔表达式);
执行流程是:首先进入 do 块执行代码,然后检查 while 后的条件,若为 true,则重复执行;否则跳出循环。 下面通过对比方式展示 while 和 do-while 在相同逻辑下的表现:
public class Demo2 {
    public static void main(String[] args) {
        int sum = 0;
        int i = 1;

        // 使用while循环求和
        while(i <= 100) {
            sum += i;
            i++;
        }
        System.out.println(sum); // 输出5050
        System.out.println("------------------");

        // 重置变量
        sum = 0;
        i = 1;

        // 使用do-while循环求和
        do {
            sum += i;
            i++;
        } while(i <= 100);

        System.out.println(sum); // 输出5050
    }
}
运行结果: 5050 ------------------ 5050 进程已结束,退出代码为 0 [此处为图片2]

for 循环

尽管 while 已能实现循环功能,但在实际开发中,循环常包含三个关键部分: 1. 初始化循环变量 2. 循环条件判断(布尔表达式) 3. 循环后变量更新 为了提升编码效率,Java 引入了 for 循环,将上述三要素集中到一条语句中,使结构更清晰,便于维护。语法形式如下: for(初始化; 条件判断; 更新操作) {
    // 循环体
}
这样可以在括号内统一管理循环控制逻辑,而循环体内专注于业务处理。 例如,同样计算 1 到 100 的累加和:
public class Demo2 {
    public static void main(String[] args) {
        int sum = 0;
        for(int i = 1; i <= 100; i++) {
            sum += i;
        }
        System.out.println(sum); // 输出5050
    }
}
由此可见,for 循环不仅结构紧凑,而且减少了因遗漏初始化或更新而导致的错误风险。
for循环的执行流程解析

在Java中,for循环遵循一套明确的执行顺序:首先进行初始化变量的操作,接着判断布尔表达式的值是否为true。如果条件成立,则执行大括号{}内的循环体代码,随后执行更新变量语句。完成一轮后,再次检查布尔表达式,若仍为true,则重复执行循环体和更新操作。这一过程持续进行,直到布尔表达式返回false为止,此时不再执行循环体,也不会再对控制变量进行更新。

示例代码如下:

public class Demo5 {
    public static void main(String[] args) {
        int sum = 0;
        for(int i = 1; i <= 100; i++) {
            sum += i; // 执行循环的代码
        }
        System.out.println(sum);
    }
}

[此处为图片1]

增强型for循环简介

Java支持一种更为简洁的遍历方式——增强型for循环(也称为foreach循环),常用于数组或集合的元素遍历。其语法结构为:

for(声明语句 : 表达式) {
    // 循环体
}

该循环会自动遍历表达式所表示的数组或集合,循环次数等于容器长度,每次迭代将当前元素赋值给声明语句中的变量。

实际应用示例如下:

public class Demo6 {
    public static void main(String[] args) {
        int[] a = {1, 2, 3, 4, 5};
        for(int i: a) {
            System.out.println(i);
        }
    }
}

输出结果:
1
2
3
4
5
进程已结束,退出代码为 0

[此处为图片2]

break与continue关键字详解

在Java循环结构中,break和continue是两个用于控制流程的关键字。

- break:用于立即终止当前所在的循环,跳出循环体后继续执行循环之后的代码。注意,它只是中断循环,并非停止整个程序运行。
  
- continue:作用是跳过当前这一次循环的剩余部分,直接进入下一次循环的判断阶段。对于while循环,需确保在使用continue前完成变量更新,否则可能导致死循环;而在for循环中,continue会先执行更新操作,再判断条件是否满足。

以下为具体演示代码:

public class Demo7 {
    public static void main(String[] args) {
        // 使用break查找1~100中第一个能被5整除的数
        int i = 1;
        while(true) {
            if(i % 5 == 0) {
                System.out.println(i);
                break;
            }
            i++;
        }
        System.out.println("循环结束:打印第一个被5整除的数字");

        // 在while循环中使用continue,跳过所有5的倍数
        i = 1;
        while(i <= 100) {
            if (i % 5 == 0) {
                i++;
                continue;
            }
            System.out.println(i);
            i++;
        }
        System.out.println("演示while循环中的continue功能,跳过当前循环,继续下一次循环。");
        System.out.println("循环结束:打印除了被5整除的数字");

        // 在for循环中使用continue实现相同效果
        for(i = 1; i <= 100; i++) {
            if(i % 5 == 0) {
                continue;
            }
            System.out.println(i);
        }
        System.out.println("演示for循环中的continue功能,跳过当前循环,继续下一次循环。");
        System.out.println("循环结束:打印除了被5整除的数字");
    }
}

[此处为图片3]

for与while/do-while循环的关键差异点总结

- 在while循环中使用continue时,必须保证循环变量的更新操作位于continue之前,否则可能造成无限循环。
- 而在for循环中,即使遇到continue,系统也会自动执行更新变量步骤,然后再判断循环条件,从而避免死循环问题。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Java jav Default foreach System

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-21 14:20