Java零基础入门Day3:程序流程控制

目录

  1. 顺序结构
  2. 分支结构
    • if语句
    • switch语句
  3. 循环结构
    • for循环
    • while循环
    • do-while循环
    • 循环嵌套与死循环
  4. break与continue
  5. 综合案例
    • 猜数字游戏
    • 验证码生成
    • 找素数

1. 顺序结构

代码默认从上到下依次执行。
示例:

public class Test {
    public static void main(String[] args) {
        System.out.println("A");
        System.out.println("B");
        System.out.println("C");    //输出结果:A B C
    }
}

2. 分支结构

2.1 if语句

三种形式:

  1. 单分支

if (条件表达式) {
    代码块;
}
  1. 双分支

if (条件表达式) {
    代码块1;
} else {
    代码块2;
}
  1. 多分支

if (条件1) {
    代码块1;
} else if (条件2) {
    代码块2;
} else {
    代码块n;
}

注意事项:

  • {}中只有一行代码,{}可省略。

  • if()后不可直接写分号;,否则逻辑错误。

应用场景:

  • 自动驾驶红绿灯判断(布尔变量记录灯状态)。

  • BMI指数健康提示(区间判断)。


2.2 switch语句

语法:

switch(表达式) {
    case 值1:
        代码块1;
        break;
    case 值2:
        代码块2;
        break;
    default:
        默认代码块;
}

执行流程:

  1. 计算表达式值,与case值匹配。

  2. 匹配成功后执行对应代码块,遇到break退出。

  3. 无匹配则执行default块。

注意事项:

  • 表达式类型:byteshortintcharString(JDK7+)。

  • case值必须唯一且为字面量。

  • 穿透性应用:多个case共享代码块时可省略break

适用场景:
值与多个固定选项匹配时(如菜单选择)。


3. 循环结构

3.1 for循环

语法:

for (初始化; 循环条件; 迭代语句) {
    循环体;
}

案例:求1-5的和

int sum = 0;
for (int i = 1; i <= 5; i++) {
    sum += i;
}
System.out.println("和为:" + sum); // 输出15

3.2 while循环

语法:

初始化;
while (循环条件) {
    循环体;
    迭代语句;
}

案例:纸张折叠次数

double peak = 8848860; // 山峰高度(毫米)
double paper = 0.1;    // 纸张厚度
int count = 0;
while (paper < peak) {
    paper *= 2;
    count++;
}
System.out.println("需折叠次数:" + count);

3.3 do-while循环

语法:

初始化;
do {
    循环体;
    迭代语句;
} while (循环条件);

特点: 先执行后判断,至少执行一次。

3.4 循环嵌套与死循环

嵌套示例:

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

输出:

*****
*****
*****

死循环写法:

while (true) { ... }  // 推荐
for (;;) { ... }

4. break与continue

  • break:跳出当前循环或switch

  • continue:跳过本次循环剩余代码,进入下一次迭代。


5. 综合案例

5.1 猜数字游戏

Random r = new Random();
int target = r.nextInt(100) + 1; // 1-100随机数
Scanner sc = new Scanner(System.in);
while (true) {
    System.out.print("请输入猜测:");
    int num = sc.nextInt();
    if (num > target) System.out.println("过大");
    else if (num < target) System.out.println("过小");
    else {
        System.out.println("猜中了!");
        break;
    }
}

5.2 验证码生成

String code = "";
Random r = new Random();
for (int i = 0; i < 5; i++) {
    int type = r.nextInt(3); // 0数字,1大写,2小写
    switch (type) {
        case 0: code += r.nextInt(10); break;
        case 1: code += (char)(r.nextInt(26) + 65); break;
        case 2: code += (char)(r.nextInt(26) + 97); break;
    }
}
System.out.println("验证码:" + code);

5.3 找素数

for (int i = 2; i <= 100; i++) {
    boolean isPrime = true;
    for (int j = 2; j <= Math.sqrt(i); j++) {
        if (i % j == 0) {
            isPrime = false;
            break;
        }
    }
    if (isPrime) System.out.print(i + " ");
}

总结

  • 分支结构:根据条件选择执行路径,if适合区间判断,switch适合固定值匹配。

  • 循环结构:控制代码重复执行,for适用于已知次数,while适用于未知次数。

  • 实战应用:结合breakcontinue优化逻辑,灵活处理复杂场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值