2、Java流程控制:编程界的“逻辑游乐场”
在Java的编程世界里,流程控制就像游乐场里的“逻辑导游”,带着代码玩起“决策游戏”和“循环挑战”。学会这些技巧,你的程序就能像过山车一样灵活转弯,像旋转木马一样循环玩!
文章目录
- 一、程序的“决策小剧场”:条件判断
- 1. if-else:会“看脸色”的代码裁判
- 2. switch:多选一的“魔法转盘”
- 二、循环结构:代码的“无限复读机”
- 1. for循环:有“倒计时”的循环王者
- 2. while循环:“不到黄河心不死”的坚持者
- 3. do-while:“先干了再说”的急性子
- 三、实战:用代码玩出“生活场景”
- 案例一:猜数字大挑战(像猜灯谜一样过瘾)
- 案例二:打印“生日蛋糕”金字塔
- 四、总结:流程控制像“编程魔法棒”
一、程序的“决策小剧场”:条件判断
1. if-else:会“看脸色”的代码裁判
- 语法像剧本:
if (条件成立) {演开心剧情} else {演伤心剧情}
- 接地气例子:点奶茶时判断甜度
int sugarLevel = 5; // 定义甜度等级(范围1-10)
if (sugarLevel > 7) {System.out.println("老板:这杯太甜啦!😖"); // 甜度超过7时的提示
} else {System.out.println("老板:甜度刚刚好~😋"); // 甜度适中时的提示
}
- 嵌套剧情:判断天气穿衣服
boolean isRainy = true; // 标记是否下雨
int temperature = 15; // 定义当前温度
if (isRainy) {System.out.println("带伞!"); // 下雨时的必备物品if (temperature < 20) {System.out.println("再加件外套~"); // 温度低于20℃时的额外建议}
} else {System.out.println("阳光好,穿T恤!"); // 不下雨时的穿衣建议
}
2. switch:多选一的“魔法转盘”
- 适用场景:像转盘抽奖一样匹配固定值
- 注意事项:转盘只能转整数或字符,每个选项(case)要独一无二,用完记得喊“停”(break)
- 趣味案例:周末活动选择
int weekendPlan = 3; // 定义周末计划编码(1-4代表不同活动)
switch (weekendPlan) {case 1:System.out.println("去公园野餐!🏕️"); // 选择1时的活动安排break; // 跳出switch结构,避免继续执行下一个casecase 2:System.out.println("在家看电影!🎬"); // 选择2时的活动安排break; // 跳出switch结构case 3:System.out.println("约朋友打球!🏀"); // 选择3时的活动安排break; // 跳出switch结构case 4:System.out.println("商场逛街去!🛍️"); // 选择4时的活动安排break; // 跳出switch结构default:System.out.println("躺平睡觉~💤"); // 所有case都不匹配时的默认安排break; // 跳出switch结构
}
二、循环结构:代码的“无限复读机”
1. for循环:有“倒计时”的循环王者
- 语法公式:
for (定起点; 看条件; 改进度) {重复做}
- 生活类比:吃包子(已知要吃5个)
for (int i = 1; i <= 5; i++) { // i从1开始,到5结束,每次循环后i+1System.out.println("吃掉第" + i + "个包子,还剩" + (5 - i) + "个~");// 输出当前吃掉的包子序号和剩余数量
}
// 输出:吃掉第1个...直到第5个,吃完啦!
2. while循环:“不到黄河心不死”的坚持者
- 执行逻辑:先问“能做吗?”能就做,做完再问
- 趣味场景:攒钱买手机
int savedMoney = 0; // 初始化已攒钱数为0
int phonePrice = 5000; // 定义手机价格
while (savedMoney < phonePrice) { // 当已攒钱数小于手机价格时,继续循环savedMoney += 500; // 每月攒500元System.out.println("已攒" + savedMoney + "元,还差" + (phonePrice - savedMoney) + "元!");// 输出当前攒钱进度和剩余金额
}
System.out.println("终于攒够钱啦!买手机去~📱"); // 攒够钱后的提示
3. do-while:“先干了再说”的急性子
- 特点:不管条件如何,先做一次再说
- 生活例子:玩游戏必须先注册
String username; // 定义用户名变量
do {System.out.println("请输入用户名注册:"); // 提示用户输入用户名username = "玩家" + (int)(Math.random()*100); // 模拟生成用户名(简化处理)System.out.println("注册的用户名是:" + username); // 显示注册的用户名
} while (username.length() < 5); // 当用户名长度小于5时,重新注册
System.out.println("注册成功,开始游戏!🎮"); // 注册成功后的提示
三、实战:用代码玩出“生活场景”
案例一:猜数字大挑战(像猜灯谜一样过瘾)
计算机偷偷想一个1-100的数,你负责猜,它负责提示“大了”“小了”,看你多久能猜中!
import java.util.Scanner; // 导入Scanner类用于接收用户输入
public class GuessGame {public static void main(String[] args) {Scanner scanner = new Scanner(System.in); // 创建Scanner对象int secretNum = (int)(Math.random()*100)+1; // 生成1-100的随机数int guessCount = 0; // 初始化猜测次数为0System.out.println("来玩猜数字!我想了个1-100的数~"); // 游戏开始提示do {System.out.print("猜一个数:"); // 提示用户输入猜测的数字int guess = scanner.nextInt(); // 接收用户输入的猜测值guessCount++; // 猜测次数加1if (guess > secretNum) {System.out.println("大了大了!📈"); // 猜测值大于随机数时的提示} else if (guess < secretNum) {System.out.println("小了小了!📉"); // 猜测值小于随机数时的提示} else {System.out.println("恭喜!用了" + guessCount + "次猜中啦~🎉"); // 猜中时的提示}} while (guess != secretNum); // 未猜中时继续循环scanner.close(); // 关闭Scanner对象,释放资源}
}
案例二:打印“生日蛋糕”金字塔
输入层数,让代码为你画一个星星堆成的蛋糕!
import java.util.Scanner; // 导入Scanner类用于接收用户输入
public class CakePyramid {public static void main(String[] args) {Scanner scanner = new Scanner(System.in); // 创建Scanner对象System.out.print("输入蛋糕层数(1-10):"); // 提示用户输入层数int layers = scanner.nextInt(); // 接收用户输入的层数for (int i = 1; i <= layers; i++) { // 外层循环控制蛋糕层数// 先画左边空格(像蛋糕的底座留白)for (int j = 1; j <= layers - i; j++) {System.out.print(" "); // 打印空格,形成金字塔左侧空白}// 再画星星(每层星星数=2*i-1)for (int k = 1; k <= 2*i-1; k++) {System.out.print("*"); // 打印星星,形成金字塔的每一层}System.out.println(); // 每层画完后换行}System.out.println("✨生日蛋糕完成!祝你生日快乐~✨"); // 蛋糕绘制完成后的祝福scanner.close(); // 关闭Scanner对象,释放资源}
}
四、总结:流程控制像“编程魔法棒”
- 条件判断:让程序学会“看情况办事”,像奶茶店根据订单调整甜度;
- 循环结构:让代码重复做一件事,像攒钱买手机一样坚持到目标达成;
- 核心技巧:多结合生活场景理解,比如把for循环当成“吃固定数量的包子”,while循环当成“没攒够钱就继续攒”。
学会这些,你的Java程序就能像游乐场一样,既有决策的惊喜,又有循环的乐趣!🎢