学习计划(完整版・代码 + 讲解)

总目标:彻底吃透循环、嵌套循环、循环控制,为算法与业务逻辑打牢基础总时长:6.5 小时前置:Day1 + Day2 完全掌握


上午(2.5h)循环完整体系 + 强化训练

1. for 循环巩固与细节(0.5h)

三要素

  • 初始值
  • 条件判断
  • 迭代(自增 / 自减)

死循环

java

运行

for(;;) {
    // 无限循环
}

倒序循环

java

运行

for (int i = 10; i >= 1; i--) {
    System.out.println(i);
}

练习 1:1~100 累加和

java

运行

int sum = 0;
for (int i = 1; i <= 100; i++) {
    sum += i;
}
System.out.println(sum); // 5050

练习 2:1~100 奇数和、偶数和

java

运行

int oddSum = 0;
int evenSum = 0;

for (int i = 1; i <= 100; i++) {
    if (i % 2 == 1) {
        oddSum += i;
    } else {
        evenSum += i;
    }
}
System.out.println("奇数和:" + oddSum);
System.out.println("偶数和:" + evenSum);

2. while 循环(0.5h)

格式:

java

运行

while(条件) {
    循环体
}

特点:先判断,再执行,次数不确定时用。

示例:循环输入数字直到输入 0 停止(简化版)

java

运行

import java.util.Scanner;

public class TestWhile {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num;

        System.out.println("输入数字,0退出:");
        num = sc.nextInt();

        while (num != 0) {
            System.out.println("你输入了:" + num);
            num = sc.nextInt();
        }
        System.out.println("程序结束");
    }
}

3. do–while 循环(0.5h)

格式:

java

运行

do {
    循环体
} while(条件);

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

while vs do–while(面试必问)

  • while:可能一次都不执行
  • do–while:至少执行一次

示例:

java

运行

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

4. break 与 continue(核心难点 1h)

break

跳出整个循环,循环立刻结束。

java

运行

for (int i = 1; i <= 10; i++) {
    if (i == 5) {
        break;
    }
    System.out.println(i); // 1 2 3 4
}

continue

跳过本次循环剩余语句,直接进入下一次。

java

运行

for (int i = 1; i <= 10; i++) {
    if (i == 5) {
        continue;
    }
    System.out.println(i); // 不输出 5
}

练习:跳过所有 3 的倍数

java

运行

for (int i = 1; i <= 20; i++) {
    if (i % 3 == 0) {
        continue;
    }
    System.out.print(i + " ");
}

带标签的 break/continue(了解)

用于多层循环中跳出指定循环,企业偶尔见。


下午(3h)嵌套循环 + 经典必写案例

1. 嵌套循环原理(0.5h)

口诀:外层走一次,内层走一圈

java

运行

for (int i = 1; i <= 3; i++) {
    for (int j = 1; j <= 3; j++) {
        System.out.printf("i=%d, j=%d%n", i, j);
    }
}

2. 经典必写案例(2h)

(1)打印矩形

java

运行

// 3行5列矩形
for (int i = 1; i <= 3; i++) {
    for (int j = 1; j <= 5; j++) {
        System.out.print("*");
    }
    System.out.println();
}

(2)打印直角三角形

java

运行

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

(3)99 乘法表(实习必考)

java

运行

for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        System.out.print(j + "*" + i + "=" + (i * j) + "\t");
    }
    System.out.println();
}

(4)百钱百鸡(经典算法)

公鸡 5 元,母鸡 3 元,小鸡 1 元 3 只,100 元买 100 只。

java

运行

for (int gong = 0; gong <= 20; gong++) {
    for (int mu = 0; mu <= 33; mu++) {
        int xiao = 100 - gong - mu;
        if (xiao % 3 == 0 && 5 * gong + 3 * mu + xiao / 3 == 100) {
            System.out.println("公鸡:" + gong + " 母鸡:" + mu + " 小鸡:" + xiao);
        }
    }
}

(5)判断质数

质数:只能被 1 和自身整除的大于 1 的整数。

java

运行

public static boolean isPrime(int num) {
    if (num < 2) return false;
    for (int i = 2; i <= Math.sqrt(num); i++) {
        if (num % i == 0) {
            return false;
        }
    }
    return true;
}

调用:

java

运行

System.out.println(isPrime(17)); // true

3. 随机数 Random(0.5h)

java

运行

import java.util.Random;

Random r = new Random();
int num = r.nextInt(100); // 0~99
int a = r.nextInt(100) + 1; // 1~100

小游戏:猜数字

java

运行

import java.util.Scanner;
import java.util.Random;

public class GuessNumber {
    public static void main(String[] args) {
        Random r = new Random();
        int ans = r.nextInt(100) + 1;
        Scanner sc = new Scanner(System.in);

        while (true) {
            System.out.print("猜数字(1-100):");
            int num = sc.nextInt();

            if (num > ans) {
                System.out.println("大了");
            } else if (num < ans) {
                System.out.println("小了");
            } else {
                System.out.println("猜对了!");
                break;
            }
        }
    }
}

晚上(1.5h)综合练习题(必须独立完成)

1. 输出 1~100 内所有质数

java

运行

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

2. 计算 1~10 的阶乘之和

java

运行

int total = 0;
for (int i = 1; i <= 10; i++) {
    // 求 i 的阶乘
    int fact = 1;
    for (int j = 1; j <= i; j++) {
        fact *= j;
    }
    total += fact;
}
System.out.println(total);

3. 打印倒三角形

java

运行

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

4. 统计 1~1000 能被 5 整除但不能被 3 整除的数

java

运行

for (int i = 1; i <= 1000; i++) {
    if (i % 5 == 0 && i % 3 != 0) {
        System.out.print(i + " ");
    }
}

5. 模拟登录:3 次错误锁定

java

运行

Scanner sc = new Scanner(System.in);
int count = 3;

while (count > 0) {
    System.out.print("输入密码:");
    String pwd = sc.next();
    if ("123456".equals(pwd)) {
        System.out.println("登录成功");
        break;
    } else {
        count--;
        System.out.println("密码错误,剩余" + count + "次");
    }
}
if (count == 0) {
    System.out.println("账户锁定");
}

6. 录入 5 个成绩,求最高、最低、平均分

java

运行

Scanner sc = new Scanner(System.in);
int max = 0;
int min = 100;
int sum = 0;

for (int i = 1; i <= 5; i++) {
    System.out.print("输入成绩:");
    int s = sc.nextInt();
    sum += s;
    if (s > max) max = s;
    if (s < min) min = s;
}
System.out.println("最高分:" + max);
System.out.println("最低分:" + min);
System.out.println("平均分:" + sum / 5.0);

 必须达到的硬标准(自查)

  • 熟练写 for /while/do–while
  • 清晰区分 break /continue
  • 独立写出 99 乘法表、质数、百钱百鸡
  • 看懂嵌套循环
  • 能用 Random 做小游戏
  • 6 道综合题全部独立完成
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐