JavaSEDay03 总结笔记
01-switch语句
- 格式 :
switch(将要匹配的值){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
...
default:
语句体n+1;
break;
}
- 执行流程 :
1. 拿着switch () 中的数据, 跟case给出的数据逐个进行匹配, 匹配成功, 就执行对应的语句体,再由break, 结束掉整个的switch语句.
2. 给出的所有case, 全部匹配失败, 将会执行default
- 注意事项 :
1. case后面的值不能重复
2. case后面的值只能是常量, 不能是变量
3. switch语句, () 中可以接收的类型
1). 基本数据类型: byte short char int
2). 引用数据类型: jdk5开始可以是枚举, jdk7开始可以是String字符串
4. 如果省略了break, 将会开启case穿透现象
switch语句案例:
示例代码:
import java.util.Scanner; public class SwitchDemo2 { /* 需求: 键盘录入一个数值, 代表星期 (1~5)打印工作日, (6~7)打印休息日 情况: 发现多个case中, 存在重复的代码 jdk14的新特性: switch语句中, case允许编写多个值, 中间要用逗号隔开 ------------------------------------------------------------ if语句和switch语句的使用选择 : if : 适用于范围的判断 switch : 适用于固定值的匹配 */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int week = sc.nextInt(); switch (week) { case 1, 2, 3, 4, 5: System.out.println("工作日"); break; case 6, 7: System.out.println("休息日"); break; default: System.out.println("您的输入有误!"); break; } } }
02-for循环语句
- 目标 : 为什么要学习循环 ?
- 回答 : 我们的代码逻辑, 有些时候需要重复的执行很多次, 就应该使用循环
- 格式 :
for(初始化语句; 判断条件; 条件控制语句){
循环体语句;
}
初始化语句 : 定义变量, 用这个变量来控制循环
判断条件 : 决定循环是否需要继续
循环体语句 : 要重复执行的代码逻辑
条件控制语句 : 改变控制循环的变量
- 执行流程 :
1. 执行初始化语句, 在整个循环过程中只执行一次
2. 执行判断条件, 看其返回结果是true, false
false : 循环结束
true : 进入第三步
3. 执行循环体语句
4. 执行条件控制语句
5. 回到2继续
for(int i = 1; i <= 5; i++){
System.out.println("itheima");
}
示例代码:
public class ForTest7 { /* 需求: 使用*号, 在控制台打印5行直角三角形 * ** *** **** ***** ***** **** *** ** * 1. 打印5行5列矩形 2. 改进为直角三角形 */ public static void main(String[] args) { // 外循环: 控制行数 for(int i = 1; i <= 5; i++){ // 内循环: 控制列数 for(int j = 1; j <= i; j++){ System.out.print("*"); } System.out.println(); } System.out.println("-----------------------"); for(int i = 5; i >= 1; i--){ for(int j = 1; j <= i; j++){ System.out.print("*"); } System.out.println(); } }
03-while循环语句
- 格式 :
初始化语句;
while(判断条件){
循环体语句;
条件控制语句;
}
1. 执行初始化语句, 在整个循环过程中只执行一次
2. 执行判断条件, 看其返回结果是true, false
false : 循环结束
true : 进入第三步
3. 执行循环体语句
4. 执行条件控制语句
5. 回到2继续
- 注意 : while循环, 千万别忘了条件控制语句.
示例代码:
public class WhileTest1 { /* 需求: 在控制台打印出所有的水仙花数, 要求使用while实现. */ public static void main(String[] args) { int i = 100; while (i <= 999) { int ge = i % 10; int shi = i / 10 % 10; int bai = i / 100; if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i){ System.out.println(i); } i++; } } }
04-do...while循环语句 (了解)
- 格式 :
初始化语句;
do {
循环体语句;
条件控制语句;
}while(判断条件);
1. 执行初始化语句
2. 执行循环体语句
3. 执行条件控制语句
4. 判断条件, 看其返回结果是true, false
false : 循环结束
true : 回到2继续.
特点: 无论判断条件是否满足, 都至少执行一次循环体.
05-三种循环的对比
- for, while : 先判断, 后执行
- do...while : 先执行, 后判断
for循环 : 用于控制循环的那个变量, 因为归属于for的语法结构当中, 在循环结束后, 无法继续使用
for (int i = 1; i <= 5; i++) {
}
// System.out.println(i); 编译出错
while循环 : 用于控制循环的那个变量, 不归属于while的语法结构, 在循环结束后, 可以继续使用的.
int i = 1;
while(i <= 5){
System.out.println("itheima");
i++;
}
System.out.println(i); // 正常使用
- 结论 : for能够实现的需求, while都能实现, 反之也是一样.
三种循环的死循环写法
//没有判断条件就是一直执行 for(;;){ System.out.println("停不下来了~"); } -------------------------------------------- //条件只要是boolean:true就会一直执行下去 while(true){ System.out.println(1); } -------------------------------------------- do { System.out.println(1); }while(true);
06-跳转控制语句
break : 结束 (循环, switch)
- break只能在循环, 和switch当中使用
continue : 跳过 (循环)
- continue只能在循环中使用
- 共同的注意事项 : break, continue 下面不允许写代码, 因为执行不到
示例代码:
public class ContinueDemo1 { /* continue : 跳过 注意: 只能在循环中用 break, continue 共同的注意事项 : 这俩东西, 下面不允许写代码, 因为执行不到. */ public static void main(String[] args) { for (int i = 1; i <= 80; i++) { if (i == 3 || i == 7 || i == 11) { continue; } System.out.println("老师正在给第" + i + "名同学发冰棍儿~"); } } }
细节 :
- 如果break | continue 遇到了循环嵌套, 默认只能操作到自己所在的那一层循环
- 想要操作指定层的话, 可以加入循环标号
07-Random产生随机数
1. 找符咒
import java.util.Random;
2. 召唤精灵
Random r = new Random();
3. 指挥精灵产生随机数
20 ~ 60;
// 0 ~ 40
int num = r.nextInt(41) + 20;
import java.util.Random;
import java.util.Scanner;
public class RandomTest {
/*
需求: 实现猜数字小游戏
1. 使用Random, 产生随机数(1~100)作为要猜的那个数据 (randomNum)
2. 使用Scanner, 键盘录入用户猜测的数据 (scNum)
3. 比对
注意: 如果死循环, 没有出口, 下面是不允许写代码的, 因为执行不到.
*/
public static void main(String[] args) {
Random r = new Random();
Scanner sc = new Scanner(System.in);
// 1. 使用Random, 产生随机数(1~100)作为要猜的那个数据 (randomNum)
int randomNum = r.nextInt(100) + 1;
while(true){
// 2. 使用Scanner, 键盘录入用户猜测的数据 (scNum)
System.out.println("请输入:");
int scNum = sc.nextInt();
// 3. 比对
if (scNum > randomNum) {
System.out.println("猜大了");
} else if (scNum < randomNum) {
System.out.println("猜小了");
} else {
System.out.println("恭喜, 猜对了!!!");
break;
}
}
System.out.println("感谢您的使用, 再见!");
}
}