Loading...

文章背景图

Day 03-知识点汇总

2026-01-29
9
-
- 分钟

1.程序的执行顺序有哪几种?

  • 顺序执行:程序从上到下逐行执行,是基础执行顺序;

  • 分支执行:根据条件判断,选择执行不同代码块(if/switch);

  • 循环执行:满足条件时,重复执行某段代码(for/while/do-while)。

2.if分支的写法有哪几种?

8-39.png

3.switch分支的执行流程

(1)先获取表达式的值(结果),再拿着这个值去与case后的值进行匹配

(2)与哪个case后的值匹配为true就执行哪个case块的代码,遇到break就跳出switch分支。

(3)如果全部case后的值与之匹配都是false,则执行default块的代码。

3-xpxs.png

4.if、switch相比较,各自适合什么业务场景?

  • if 分支:功能更强大,适合条件为区间判断、复杂逻辑判断的场景(如工龄≥10、分数 80~90 等);

  • switch 分支:适合条件为等值判断的场景,代码结构更优雅、执行性能较好(如判断星期几、月份等)。

5.使用switch时有哪些注意事项?

(1)表达式的类型有限制:仅支持 byte、short、int、char;

(2)JDK1.5 开始支持枚举,JDK1.7 开始支持 String,不支持 double、float、long、boolean

(3)case 后给出的值不允许重复,且只能是字面量(如 10、"A"),不能是变量;

(4)正常使用时不要忘记写 break,否则会出现穿透现象

6.switch穿透性能解决什么问题?

当多个 case 分支的执行代码完全相同时,可将公共代码写在一个 case 块中,其他 case 块不写 break,通过穿透特性执行到该公共 case 块,达到简化代码、减少冗余的效果。

w4.png

7.for循环格式是什么样的?

标准格式for (初始化语句; 条件判断语句; 条件控制语句) { 循环体语句; }

  • 初始化语句:仅执行一次,用于定义循环变量(如int i = 0);

  • 条件判断语句:布尔类型,结果为 true 则执行循环体,false 则跳出循环;

  • 条件控制语句:每次循环体执行完后执行,用于修改循环变量(如i++)。

    快捷生成:循环次数.fori + 回车(正向循环)、循环次数.forr + 回车(反向循环,i 由大减小)。

8.for循环的常见应用场景?

减少重复代码的编写,灵活控制程序的执行次数,适合需要明确循环次数的重复操作(如遍历固定长度的数组、计算 1~100 的和等)。

9.如何求1-10之间的奇数和?

  • 定义 for 循环,循环变量从 1 到 10 依次遍历(for (int i = 1; i <= 10; i++));

  • 在循环外定义 int 类型变量sum = 0,用于存储奇数和;

  • 循环内通过 if 判断当前数是否为奇数(i % 2 != 0),若是则将其加到 sum 中(sum += i);

  • 循环结束后,打印 sum 即可得到结果。

53.png

10.水仙花数是什么?如何找出水仙花数?如何获得个位\十位\百位三位数字?如何计算出水仙花数的个数?

  • 水仙花数:指三位数,其个位、十位、百位的数字立方和等于它本身(如 153 = 1³+5³+3³);

  • 找水仙花数:定义 for 循环遍历所有三位数(100~999),逐个判断是否满足水仙花数条件,满足则输出;

  • 三位数字获取:

    个位:数字 % 10(如 153%10=3);

    十位:数字 / 10 % 10(如 153/10%10=5);

    百位:数字 / 100(如 153/100=1);

  • 统计个数:在循环外定义 int 变量count = 0,每找到一个水仙花数,执行count++,循环结束后打印 count。

11.求指定数据的几次幂的API是什么?

使用 Math 类的 pow 方法:Math.pow(数据, 次幂),注意返回值为 double 类型,需按需强转。

12.while 循环的格式是什么?执行流程是怎么样的?

34.png
  • 先执行一次初始化语句;

  • 判断条件判断语句,结果为 true 则执行循环体,false 则跳出循环;

  • 循环体执行完后,执行条件控制语句,再回到步骤 2 重复判断,直至条件为 false。

13.while和for有什么区别?什么时候用for,什么时候用while?

  • 功能等价:for 能实现的功能 while 都能实现,反之亦然,核心逻辑一致;

  • for 循环:适合循环次数明确的场景(如遍历 1~100、数组遍历),变量作用域更紧凑,代码更简洁;

  • while 循环:适合循环次数不明确的场景(如用户输入正确值才停止、读取文件直到末尾),更灵活。

14.三种循环(for/while/do-while)的使用场景与特点?

23.png

15.循环嵌套的执行特点是什么?

外部循环每执行一次,内部循环会完整执行一轮(内部循环结束后,外部循环才会进入下一次判断)。

16.死循环是什么?有哪些常见写法?

  • 定义:满足循环条件为永久 true,无人工干预则会一直执行下去的循环;

  • 常见写法:

    1. for 死循环:for (;;) { 循环体; }(初始化、判断、控制语句均省略,条件默认为 true);

    2. while 死循环:while (true) { 循环体; }(最常用,可读性更高)。

17.break和continue关键字有什么区别?

  • break:可用于循环switch 分支中,表示结束当前所在的循环 /switch 分支,直接跳出;(拓展:return 是结束整个方法 / 程序);

  • continue:仅能用于循环中,表示跳过本次循环的剩余代码,直接进入下一次循环的条件判断。

18.如何生成 10 – 91(包括)之间的随机数?

  • 公式推导:目标范围 [10,91] → 转换为 [0,82) + 10(82=91-10+1);

  • 代码实现(Random 类):

    • 通用版(兼容所有 JDK):int number = new Random().nextInt(82) + 10;

    • JDK17 + 推荐版:int number = new Random().nextInt(10, 92);(直接指定起止范围,包含 10、包含 91)。

19.Random生成随机数需要几步?生成随机数的两类方式?

一、Random 类生成随机数(3 步)
导包(若使用默认包可省略):import java.util.Random;;
创建 Random 对象:Random r = new Random();;
调用 nextInt 方法生成随机数。

二、生成随机数的两类核心方式
方式 1:Random 类(推荐,灵活可控)
基础用法:r.nextInt(n) → 生成[0, n)的整数(包含 0,不包含 n);
指定范围[min, max](通用):r.nextInt(max - min + 1) + min;
JDK17 + 简化用法:r.nextInt(min, max+1) → 直接生成[min, max]的整数(最推荐);
示例:生成 65~90 → r.nextInt(26)+65 或 r.nextInt(65,91)。
方式 2:Math.random ()(无需创建对象,简洁)
基础用法:Math.random() → 生成[0.0, 1.0)的 double 类型随机数;
转换为指定范围[min, max]的整数:(int)(Math.random() * (max - min + 1)) + min;
示例:生成 1~100 → (int)(Math.random()*100+1);生成 65~90 → (int)(Math.random()*26+65)。

评论交流

文章目录