1.1、请回答switch语句, () 中可以接收的类型有哪些 ?
答:
整数类型:
byte
short
int
char
枚举类型:
enum
字符串类型:
String (从 Java 7 开始支持)
包装类:
Byte
Short
Integer
Character(从 Java 5 开始支持自动装箱)
1.2、如果switch语句省略了break, 会出现什么现象? 请简单描述下这个现象
答: 穿刺,他会从执行的第一个case一直执行到第一个break
1.3、键盘录入学生成绩, 0 ~ 100分, 根据成绩所在的区间, 打印出不同的奖励机制
对于这个需求, 你觉得应该使用 if , 还是 switch 呢 ? 请说明理由
答: if
switch更适合用于确定值的场景,if更适用于区间的判断
1.4、现有如下代码 , 请说出执行流程和最终结果// i的作用域
public class Demo { public static void main(String[] args){ for(int i = 1; i <= 5; i++){ System.out.println(i); } System.out.println(i); } }
答:
java: 找不到符号
符号: 变量 i
位置: 类 cn.base.it.work.demo1
//i的作用域为其所在的最大的{}
/**
修改一:把最后一行System.out.println(i);删掉。
*/
执行结果:
1
2
3
4
5
/**
修改二:源代码修改为:
public static void main(String[] args){
int i;
for(i = 1; i <= 5; i++){
System.out.println(i);
}
System.out.println(i);
}。
*/
执行结果:
1
2
3
4
5
6
1.7、现有如下代码 , 统计 1 ~ 20 之间, 5的倍数有几个, 但是代码存在错误, 请说明错误原因, 并更正代码
public class Demo { public static void main(String[] args) { for (int i = 1; i <= 20; i++) { int count = 0; if(i % 5 == 0){ count++; } System.out.println(count); } } }
答:
package cn.base.it.work;
public class demo1 {
public static void main(String[] args) {
int count = 0;
for (int i = 1; i <= 20; i++) {
if (i % 5 == 0) {
count++;
}
}
System.out.println(count);
}
}
1.8、请说出 Java 的三种循环分别是什么 ? 以及各自的区别
答: for while do-while for循环适用于判断条件已知,循环次数已知。 while循环适用于判断条件已知,循环次数未知。 do-while循环适用于需要先执行一次循环操作再判断的应用场景。 ------------------------------------------- 1. for 循环 for 循环用于已知循环次数的情况,循环条件、初始值和迭代方式都在循环头部定义。 特点: 初始化、条件检查和更新都集中在一个地方,适合计数循环。 如果循环次数已知,使用 for 循环更为清晰。 2. while 循环 while 循环在每次迭代前检查条件,如果条件为真则执行循环体。 特点: 适用于循环次数未知但需要在循环开始前检查条件的情况。 如果条件最初为假,循环体可能一次也不会执行。 3. do-while 循环 do-while 循环先执行一次循环体,然后检查条件,如果条件为真则继续循环。 特点: 保证循环体至少执行一次。 适用于循环体需要至少执行一次的情况,然后根据条件决定是否继续。 ------------------------------------------ 区别总结: 条件检查时机: for 和 while 循环在每次迭代前检查条件。 do-while 循环在每次迭代后检查条件。 用途和适用场景: for 循环适用于已知循环次数的情况。 while 循环适用于循环次数未知但需要在循环开始前检查条件的情况。 do-while 循环适用于至少需要执行一次循环体的情况。
1.9、观察以下的代码 , 下划线位置加入什么语句,可以在控制台打印
7次 I Love Java
2次 I Love Java
13次 I Love Java
public class Demo { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { if (i % 3 == 0) { //___________ } System.out.println("I Love Java"); } } }
答:
7次:continue
2次:break
13次:System.out.println("I Love Java");
补充:Java中return和break的区别是什么?
在 Java 中,return
和 break
是两种用于控制程序流的关键字,但它们的用途和作用范围不同。
return
return
语句用于结束方法的执行,并将控制权返回给调用该方法的代码。它可以携带一个返回值,也可以不携带,取决于方法的返回类型。
用法:
- 在方法中:
- 用于终止方法的执行。
- 可选择性地返回一个值(如果方法的返回类型不是
void
)。
示例:
public int add(int a, int b) {
return a + b; // 返回两个参数的和,并结束方法
}
public void printMessage() {
System.out.println("Hello");
return; // 结束方法,但不返回值
}
特点:
- 立即结束当前方法的执行。
- 如果方法有返回值类型,则
return
语句必须返回一个与该类型匹配的值。
break
break
语句用于终止最近的循环或 switch
语句,并将控制权移到循环或 switch
语句之后的下一行代码。
用法:
-
在循环中:
- 终止
for
、while
或do-while
循环的执行。 - 跳出循环,不再执行循环体内剩余的代码。
- 终止
-
在
switch
语句中:- 结束当前
case
的执行。 - 防止执行落到下一个
case
中(防止贯穿现象)。
- 结束当前
示例:
// 在循环中使用 break
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 当 i 为 5 时,跳出循环
}
System.out.println(i);
}
// 在 switch 语句中使用 break
int day = 3;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break; // 防止贯穿到下一个 case
default:
System.out.println("Invalid day");
break;
}
特点:
- 结束最内层的循环或
switch
语句的执行。 - 将控制权移到循环或
switch
语句之后的下一行代码。
区别总结
-
作用范围:
return
用于方法中,结束方法的执行并返回一个值(如果方法有返回值类型)。break
用于循环和switch
语句中,结束最内层的循环或switch
语句的执行。
-
影响的代码块:
return
影响整个方法。break
只影响最近的循环或switch
语句。
-
用途:
return
用于返回方法的结果并终止方法的执行。break
用于跳出循环或结束switch
语句的当前分支。
通过了解 return
和 break
的区别,可以在编写代码时正确地控制程序的执行流,确保逻辑清晰且符合预期。