目录
格式:
- switch (表达式) {
- case 1:
- 语句体1;
- break;
- case 2:
- 语句体2;
- break;
- ...
- default:
- 语句体n+1;
- break;
- }
执行流程:
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
需求:一年有12月份,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节并输出。
代码:
- public class Demo1 {
- public static void main(String[] args) {
- //键盘录入月份数据,使用变量接收
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入一个月份:");
- int month = sc.nextInt();
- //case穿透
- switch(month) {
- case 1:
- case 2:
- case 12:
- System.out.println("冬季");
- break;
- case 3:
- case 4:
- case 5:
- System.out.println("春季");
- break;
- case 6:
- case 7:
- case 8:
- System.out.println("夏季");
- break;
- case 9:
- case 10:
- case 11:
- System.out.println("秋季");
- break;
- default:
- System.out.println("你输入的月份有误");
- }
- }
- }
注意:switch中没有case,没有对应的break的话,则会出现case穿透的现象。
循环:
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形 成死循环。
for循环格式:
- for (初始化语句;条件判断语句;条件控制语句) {
- 循环体语句;
- }
格式解释:
初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情
条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
执行流程:
①执行初始化语句
②执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
③执行循环体语句
④执行条件控制语句
⑤回到②继续
需求,统计“水仙花数”一共有多少个,并在控制台输出个数
解释:水仙花数,指一个三位数,个位、十位、百位的数字立方和等于原数
例如 371 3*3*3 + 7*7*7 + 1*1*1 = 371
思路:
1、获取所有的三位数,准备进行筛选,最小的三位数为100,最大的三位数为999,使用for循环获取
2、获取每个三位数的个位、十位、百位,用if语句判断是否相等,相等则为水仙花数,不相等则进行下一个数的对比
- public class ForTest05 {
- public static void main(String[] args) {
- //定义变量count,用于保存“水仙花数”的数量,初始值为0
- int count = 0;
- //输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
- for(int i=100; i<1000; i++) {
- //在计算之前获取三位数中每个位上的值
- int ge = i%10;
- int shi = i/10%10;
- int bai = i/10/10%10;
- //在判定水仙花数的过程中,满足条件不再输出,更改为修改count的值,使count+1
- if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {
- count++;
- }
- }
- //打印输出最终结果
- System.out.println("水仙花共有:" + count + "个");
- }
- }