好的,各位观众老爷们,晚上好!欢迎来到“Java控制流语句的那些事儿”讲座现场!我是你们的老朋友,人称“Bug终结者”的程序猿老王。今天咱们就来聊聊Java里那些控制程序走向,决定程序命运的小家伙们——控制流语句!
开场白:程序世界的“红绿灯”
想象一下,你是一个交通指挥官,手里拿着小旗子,指挥着各种车辆在复杂的路口穿梭。Java的控制流语句,就像你手中的小旗子,它们决定了程序执行的顺序,让程序知道什么时候该左转,什么时候该右转,什么时候该停下来等等。没有它们,程序就会像一辆失控的汽车,横冲直撞,最终撞得头破血流(当然,是程序崩溃啦!)。
今天,咱们就深入了解一下这些重要的“红绿灯”们,包括:
- if/else 条件判断: 程序的“单行道”和“岔路口”。
- switch 选择结构: 程序的“立交桥”和“环岛”。
- for 循环: 程序的“自动巡航”和“重复劳动”。
- while 和 do-while 循环: 程序的“坚持不懈”和“至少一次”。
准备好了吗?让我们系好安全带,开始这段奇妙的Java控制流之旅吧!🚀
第一站:if/else 条件判断 – “单行道”与“岔路口”
if/else
语句,就像程序世界的“单行道”和“岔路口”。它根据不同的条件,决定程序执行不同的路径。
1.1 单行道:if语句
if
语句就像一条单行道,只有当条件满足时,程序才能沿着这条路走下去。如果条件不满足,程序就会直接跳过这条路,继续执行后面的代码。
int age = 25;
if (age >= 18) {
System.out.println("恭喜你,已成年,可以进入酒吧!🍻");
}
System.out.println("程序继续执行...");
在这个例子中,只有当age
大于等于18时,才会打印出“恭喜你,已成年,可以进入酒吧!🍻”。否则,程序会直接跳过if
语句中的代码,打印出“程序继续执行…”。
1.2 岔路口:if/else 语句
if/else
语句就像一个岔路口,程序根据条件选择走哪条路。如果条件满足,程序就会走if
后面的路;如果条件不满足,程序就会走else
后面的路。
int score = 75;
if (score >= 60) {
System.out.println("恭喜你,及格了!🎉");
} else {
System.out.println("很遗憾,不及格,下次加油!💪");
}
System.out.println("程序继续执行...");
在这个例子中,如果score
大于等于60,程序就会打印出“恭喜你,及格了!🎉”;否则,程序就会打印出“很遗憾,不及格,下次加油!💪”。
1.3 多重岔路口:if/else if/else 语句
有时候,我们需要面对多个岔路口,这时就可以使用if/else if/else
语句。它允许我们根据多个条件,选择执行不同的代码块。
int score = 85;
if (score >= 90) {
System.out.println("优秀!🏆");
} else if (score >= 80) {
System.out.println("良好!👍");
} else if (score >= 70) {
System.out.println("中等!😊");
} else if (score >= 60) {
System.out.println("及格!😊");
} else {
System.out.println("不及格!😥");
}
System.out.println("程序继续执行...");
在这个例子中,程序会根据score
的值,依次判断是否满足不同的条件,并执行相应的代码块。
总结: if/else
语句是控制程序流程的基础,它让我们能够根据不同的条件,执行不同的代码,使程序更加灵活和智能。
第二站:switch 选择结构 – “立交桥”与“环岛”
switch
语句就像程序世界的“立交桥”和“环岛”。它提供了一种更简洁的方式,根据不同的值,选择执行不同的代码块。
2.1 switch 语句的基本结构
int day = 3;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("非法日期");
}
在这个例子中,switch
语句根据day
的值,选择执行不同的case
语句。每个case
语句后面都跟着一个break
语句,用于跳出switch
语句。如果没有break
语句,程序会继续执行下一个case
语句,直到遇到break
语句或者switch
语句结束。default
语句用于处理所有case
语句都没有匹配到的情况。
2.2 switch 语句的注意事项
switch
语句只能用于判断整数、字符、字符串(Java 7及以上版本)和枚举类型。- 每个
case
语句后面都需要跟着一个break
语句,否则程序会继续执行下一个case
语句,这被称为“case穿透”。 default
语句是可选的,用于处理所有case
语句都没有匹配到的情况。
2.3 switch 语句的优势
相比于if/else if/else
语句,switch
语句在处理多个条件判断时,代码更加简洁和易读。
举个例子:
假设我们要根据用户的选择,执行不同的操作。使用if/else if/else
语句:
int choice = 2;
if (choice == 1) {
System.out.println("执行操作1");
} else if (choice == 2) {
System.out.println("执行操作2");
} else if (choice == 3) {
System.out.println("执行操作3");
} else {
System.out.println("无效的选择");
}
使用switch
语句:
int choice = 2;
switch (choice) {
case 1:
System.out.println("执行操作1");
break;
case 2:
System.out.println("执行操作2");
break;
case 3:
System.out.println("执行操作3");
break;
default:
System.out.println("无效的选择");
}
可以看到,使用switch
语句的代码更加简洁和易读。
总结: switch
语句提供了一种更简洁的方式,根据不同的值,选择执行不同的代码块,使程序更加高效和易维护。
第三站:for 循环 – “自动巡航”与“重复劳动”
for
循环就像程序世界的“自动巡航”和“重复劳动”。它允许我们重复执行一段代码,直到满足某个条件为止。
3.1 for 循环的基本结构
for (int i = 0; i < 10; i++) {
System.out.println("这是第" + (i + 1) + "次循环");
}
for
循环由三个部分组成:
- 初始化:
int i = 0
,用于初始化循环变量。 - 条件判断:
i < 10
,用于判断是否继续循环。 - 更新:
i++
,用于更新循环变量。
在这个例子中,循环变量i
从0开始,每次循环增加1,直到i
等于10时,循环结束。
3.2 for 循环的应用场景
for
循环非常适合用于执行重复性的任务,例如:
- 遍历数组或集合。
- 计算累加和或累乘积。
- 绘制图形或生成报表。
举个例子:
计算1到100的累加和:
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("1到100的累加和为:" + sum);
3.3 增强型 for 循环 (foreach)
Java 5 引入了增强型 for
循环,也称为 foreach
循环,它简化了遍历数组和集合的操作。
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}
在这个例子中,foreach
循环会自动遍历numbers
数组中的每个元素,并将元素的值赋给number
变量。
总结: for
循环是控制程序重复执行的重要工具,它让我们能够轻松地处理重复性的任务,提高编程效率。
第四站:while 和 do-while 循环 – “坚持不懈”与“至少一次”
while
循环和do-while
循环就像程序世界的“坚持不懈”和“至少一次”。它们也允许我们重复执行一段代码,直到满足某个条件为止,但与for
循环略有不同。
4.1 while 循环
while
循环会先判断条件是否满足,如果满足,则执行循环体;否则,循环结束。
int i = 0;
while (i < 10) {
System.out.println("这是第" + (i + 1) + "次循环");
i++;
}
在这个例子中,while
循环会先判断i
是否小于10,如果小于,则执行循环体,并将i
的值增加1;否则,循环结束。
4.2 do-while 循环
do-while
循环会先执行一次循环体,然后再判断条件是否满足,如果满足,则继续循环;否则,循环结束。
int i = 0;
do {
System.out.println("这是第" + (i + 1) + "次循环");
i++;
} while (i < 10);
在这个例子中,do-while
循环会先执行一次循环体,并将i
的值增加1,然后再判断i
是否小于10,如果小于,则继续循环;否则,循环结束。
4.3 while 和 do-while 循环的区别
while
循环会先判断条件,然后再执行循环体;do-while
循环会先执行一次循环体,然后再判断条件。因此,do-while
循环至少会执行一次循环体,而while
循环可能一次都不会执行。
举个例子:
假设我们要从用户那里获取一个正数,直到用户输入一个正数为止。
使用while
循环:
Scanner scanner = new Scanner(System.in);
int number = 0;
System.out.println("请输入一个正数:");
number = scanner.nextInt();
while (number <= 0) {
System.out.println("输入的不是正数,请重新输入:");
number = scanner.nextInt();
}
System.out.println("你输入的是正数:" + number);
使用do-while
循环:
Scanner scanner = new Scanner(System.in);
int number = 0;
do {
System.out.println("请输入一个正数:");
number = scanner.nextInt();
if (number <= 0) {
System.out.println("输入的不是正数,请重新输入:");
}
} while (number <= 0);
System.out.println("你输入的是正数:" + number);
在这个例子中,do-while
循环可以保证至少从用户那里获取一次输入,即使第一次输入不是正数。
总结: while
循环和do-while
循环是控制程序重复执行的另一种重要工具,它们让我们能够根据不同的条件,灵活地控制程序的流程。
特殊控制语句:break 和 continue
除了以上介绍的控制流语句,Java还提供了break
和continue
两个特殊的控制语句,用于更精细地控制循环的执行。
- break 语句: 用于立即终止循环的执行,跳出循环体。
- continue 语句: 用于跳过当前循环迭代的剩余部分,直接进入下一次循环迭代。
举个例子:
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 当 i 等于 5 时,终止循环
}
System.out.println("i = " + i);
}
System.out.println("循环结束!");
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 当 i 是偶数时,跳过本次循环迭代
}
System.out.println("i = " + i);
}
System.out.println("循环结束!");
总结: break
和continue
语句让我们能够更灵活地控制循环的执行,处理一些特殊的场景。
结语:掌握控制流,掌控程序命运!
各位观众老爷们,今天的“Java控制流语句的那些事儿”讲座就到这里告一段落了。希望通过今天的学习,大家能够对Java的控制流语句有更深入的理解,并能够在实际开发中灵活运用,编写出更加高效、可靠的程序。
记住,控制流语句是程序世界的“红绿灯”,掌握它们,你就能掌控程序的命运!💪
最后,祝大家编程愉快,Bug远离!咱们下期再见!👋