switch case和循环结构
1. switch case
1.1 结构概述
/*
1.2 switch - case使用注意事项
1. 在switch - case结构中,有且只能执行case,或者default之后的语句。如果存在在case 和default之外的语句,是无法执行的,对于Java而言是无效代码。
unreachable code
2. 在switch - case结构中,如果存在case或者default选择缺少break操作。代码会继续运行到下一个break,或者大括号 }(switch case结尾大括号) 终止switch - case!!
3. 在switch - case结构中,不允许出现相同的case选项,代码无法进行操作选择,因为所有case选择是平级的
4. 在switch - case结构中,default可以省略,代码编译不会受到影响,没有语法错误。但是失去switch case自带的一种异常情况处理方式。
AJCG阿里巴巴Java开发规范中,是不推荐省略default
1.3 总结
1. switch case结构和if else if 结构类似,两者是可以互通
2. if else if结构中可以处理范围性数据,处理的数据区间更加广泛
3. switch case处理数据明确性更强,处理针对性选择比较合适
2. 循环结构
2.1 为什么要用循环
生活中很多重复的事情,周而复始
吃饭,睡觉,撸猫,学习,上课....
代码中一定存在需要循环出现的情况,如果不使用循环,会导致以下一些问题
1. 阅读性极差!!!
2. 维护性极差!!!
3. 代码冗余!!!
2.2 while循环
while
2.3 do - while循环
do
2.4 循环和分支的嵌套
完成一个点菜功能
while
do - while
/*
使用while循环,完成一个点菜系统
1. 完成用户的点菜功能
2. 点菜之后输出总价
3. 用户指定方式退出
*/
import java.util.Scanner;
class Demo13 {
public static void main(String[] args) {
/*
这里需要一个变量 int类型,作为用户的选择
变量名 choose
*/
int choose = 0;
/*
计算得到总价格,int类型,变量名为 total
*/
int total = 0;
/*
准备一个Scanner类型的变量,用于从键盘上获取用户
输入的数据
*/
Scanner sc = new Scanner(System.in);
System.out.println("欢迎来到骚磊老酒馆");
System.out.println("1. 青岛啤酒 8RMB");
System.out.println("2. 野格 88RMB");
System.out.println("3. 江小白 25RMB");
System.out.println("4. 乌苏 6RMB");
System.out.println("5. 1664 18RMB");
System.out.println("6. 下单");
/*
用户输入6终止循环,如果不是6,继续循环
*/
while (choose != 6) {
choose = sc.nextInt();
switch (choose) {
case 1:
System.out.println("1. 青岛啤酒 8RMB");
total += 8;
break;
case 2:
System.out.println("2. 野格 88RMB");
total += 88;
break;
case 3:
System.out.println("3. 江小白 25RMB");
total += 25;
break;
case 4:
System.out.println("4. 乌苏 6RMB");
total += 6;
break;
case 5:
System.out.println("5. 1664 18RMB");
total += 18;
break;
case 6:
System.out.println("6. 下单");
break;
default:
System.out.println("选择错误");
break;
}
}
System.out.println("本场消费 : " + total);
}
}
/*
使用do - while循环,完成一个点菜系统
1. 完成用户的点菜功能
2. 点菜之后输出总价
3. 用户指定方式退出
*/
import java.util.Scanner;
class Demo14 {
public static void main(String[] args) {
/*
这里需要一个变量 int类型,作为用户的选择
变量名 choose
*/
int choose = 0;
/*
计算得到总价格,int类型,变量名为 total
*/
int total = 0;
/*
准备一个Scanner类型的变量,用于从键盘上获取用户
输入的数据
*/
Scanner sc = new Scanner(System.in);
System.out.println("欢迎来到骚磊老酒馆");
System.out.println("1. 青岛啤酒 8RMB");
System.out.println("2. 野格 88RMB");
System.out.println("3. 江小白 25RMB");
System.out.println("4. 乌苏 6RMB");
System.out.println("5. 1664 18RMB");
System.out.println("6. 下单");
do {
choose = sc.nextInt();
switch (choose) {
case 1:
System.out.println("1. 青岛啤酒 8RMB");
total += 8;
break;
case 2:
System.out.println("2. 野格 88RMB");
total += 88;
break;
case 3:
System.out.println("3. 江小白 25RMB");
total += 25;
break;
case 4:
System.out.println("4. 乌苏 6RMB");
total += 6;
break;
case 5:
System.out.println("5. 1664 18RMB");
total += 18;
break;
case 6:
System.out.println("6. 下单");
break;
default:
System.out.println("选择错误");
break;
}
} while (choose != 6);
System.out.println("本场消费 : " + total);
}
}
总结
1. 循环过程中最核心的内容就是循环变量,需要对于循环变量的执行的过程中数值变量完全掌握!!!如果无法明确循环的次数,循环变量的值,循环的过程,可以将循环代码中变量的变更过程记录。
2. 循环过程中需要注意无限循环问题,控制无限循环问题的出现。一定要保证循环条件有效性或者代码中存在一个跳出循环的机制。
3. do while循环中,第一次循环体的执行是没有经过任何的条件判断的,需要注意!
【已知,可控】
4. while和do while循环结构是可以进行互换的。
5. 然后在while和do while之间考虑使用的情况下,一般推荐使用while循环。但是不代表do while没有实际的使用效果。