Java 每日一刊(第8期):流程控制

“计算机程序本质上是艺术的一种表现形式。”

前言

这里是分享 Java 相关内容的专刊,每日一更。

本期将为大家带来以下内容:

  1. 条件控制语句
  2. 循环控制语句
  3. 跳转控制语句

条件控制语句

条件控制语句用于 根据条件判断执行不同的代码块,是编程中最基本的流程控制结构。Java 主要提供以下条件控制语句:

  1. if-else 语句
  2. 多重 if-else
  3. 三元运算符(简化条件判断)
  4. switch-case 语句

if-else 语句

if-else 语句根据给定的条件表达式是否为真来决定执行哪个代码块。其基本结构如下:

if (condition) {
    // 当 condition 为 true 时执行
} else {
    // 当 condition 为 false 时执行
}

示例:

int age = 18;
if (age >= 18) {
    System.out.println("老年人");
} else {
    System.out.println("年轻人");
}

多重 if-else

当有多个条件需要判断时,可以使用 else if 结构:

int score = 75;
if (score >= 90) {
    System.out.println("优秀");
} else if (score >= 60) {
    System.out.println("及格");
} else {
    System.out.println("不及格");
}

三元运算符(简化条件判断)

三元运算符(?:)是 if-else 的简写,用于简单的条件判断:

int a = 5;
int b = 10;
int max = (a > b) ? a : b; // 如果 a 大于 b,则 max 等于 a,否则等于 b

switch-case 语句

switch-case 语句用于在多个值之间进行匹配,替代大量的 if-else 语句,通常适用于枚举类型、整数、字符串等类型的匹配。

switch (expression) {
    case value1:
        // 当 expression == value1 时执行
        break;
    case value2:
        // 当 expression == value2 时执行
        break;
    default:
        // 当没有匹配的值时执行
}

示例:

int day = 2;
switch (day) {
    case 1:
        System.out.println("星期一");
        break;
    case 2:
        System.out.println("星期二");
        break;
    default:
        System.out.println("未知的日期");
}

注意:

  • 每个 case 后都需要 break,否则程序会继续执行后续的 case 代码块,导致 “贯穿现象”
  • switch 支持的数据类型包括 intcharString 和枚举类型(enum),但不支持浮点数(floatdouble)。

循环控制语句

循环语句用于重复执行一段代码,直到满足退出条件为止。Java 提供了三种主要的循环结构:forwhiledo-while

for 循环

for 循环一般用于已知循环次数的场景,其结构包括初始化、条件判断和迭代更新部分:

for (initialization; condition; update) {
    // 循环体
}

示例:

for (int i = 0; i < 5; i++) {
    System.out.println("i = " + i);
}

增强型 for 循环

增强型 for 循环(或称 for-each)专门用于遍历数组或集合,它的语法更加简洁:

for (type variable : arrayOrCollection) {
    // 对 variable 进行操作
}

示例:

int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
    System.out.println(num);
}

while 循环

while 循环在每次循环开始时都会判断条件,条件为 true 时继续执行循环体,否则退出循环。

while (condition) {
    // 循环体
}

示例:

int i = 0;
while (i < 5) {
    System.out.println("i = " + i);
    i++;
}

do-while 循环

do-while 循环与 while 的区别在于,它先执行循环体,然后再判断条件,即使条件不成立,循环体也会至少执行一次。

do {
    // 循环体
} while (condition);

示例:

int i = 0;
do {
    System.out.println("i = " + i);
    i++;
} while (i < 5);

循环中的常见陷阱

死循环:当循环条件永远不成立或没有正确更新时,程序会进入死循环,导致无限执行。常见的死循环如下:

while (true) {
    // 这种情况下,除非手动终止或内部有跳出条件,否则程序会无限循环
}

错误的更新条件:忘记更新循环变量或条件可能导致循环无法终止。例如:

int i = 0;
while (i < 5) {
    System.out.println(i);
    // 忘记更新 i,循环将一直打印 i = 0
}

跳转控制语句

跳转控制语句用于中断或调整循环的执行顺序,常见的有 breakcontinuereturn

break 语句

break 用于立即退出当前循环或 switch 语句。在循环中使用 break 会跳出当前的整个循环,而不是只跳过一次迭代。例如:

for (int i = 0; i < 5; i++) {
    if (i == 3) {
        break; // 当 i == 3 时跳出整个循环
    }
    System.out.println("i = " + i);
}

输出结果:

i = 0
i = 1
i = 2

标签 break 语句

在多层嵌套的循环中,普通 break 只能跳出最近的循环。如果需要跳出指定的外层循环,可以使用带标签的 break

outerLoop: for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
        System.out.println("i = " + i + ", j = " + j);
        if (j == 2) {
            break outerLoop; // 跳出 outerLoop
        }
    }
}

输出结果:

i = 0, j = 0
i = 0, j = 1
i = 0, j = 2

continue 语句

continue 用于跳过当前循环的剩余部分,直接开始下一次迭代。它不终止循环,而是跳到下一个迭代。例如:

for (int i = 0; i < 5; i++) {
    if (i == 3) {
        continue; // 跳过 i == 3 时的输出
    }
    System.out.println("i = " + i);
}

输出结果:

i = 0
i = 1
i = 2
i = 4

return 语句

return 语句用于从方法中返回一个值,并结束方法的执行。在 void 方法中,return 可以提前终止方法的执行。例如:

public int add(int a, int b) {
    return a + b; // 返回两个数的和
}

void 方法中:

public void checkNumber(int number) {
    if (number < 0) {
        System.out.println("负数");
        return; // 提前终止方法
    }
    System.out.println("正数");
}

本期小知识

有时在 if 语句中可以通过连环赋值进行判断和操作,这是很多初学者忽略的小技巧:

int a, b;
if ((a = 5) == (b = 5)) {
    System.out.println("a 和 b 相等,值都为: " + a);
}

这种方式在实际代码中不常见,但偶尔会作为一种简写,需注意代码可读性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值