switch case 和循环结构
1. switch case
1.1 结构概述
switch (/* 变量 */) {
case 常量选择1:
//处理方式1;
break;
case 常量选择2:
//处理方式2;
break;
case 常量选择3:
//处理方式3;
break;
default:
//最终处理方式
break;
}
/*
执行流程;
* 根据变量的值与case后面的常量匹配,如果有就执行对应的语句,否则执行default控制的语句
*/
1.2 switch case 使用注意事项
1. 在switch - case结构中,有且只能执行case,或者default之后的语句。如果存在在case 和 default之外的语句,是无法执行的,对于Java而言是无效代码。
unreachable code
2. switch case结构中,case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
3.default 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
4. case 后面的break不可省略 否则出现一个现象:case穿透。
5. default 可以在任何位置,但是建议在最后。
6. switch语句的结束条件
* a:遇到break就结束了
* b:执行到switch的右大括号就结束了
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 (/* 循环条件 true or false */) {
// 循环体
// (循环条件变更)
}
/*
执行流程:
进入do while 循环后,先判断循环条件是否为ture,是就执行循环体,然后在回到循环条件判断,直到循环条件为false,终止循环!!!
*/
2.3 do while循环
do () {
// 循环体
// (循环条件变更)
} while(/* 循环条件判断 */);
/*
执行流程:
进入do - while循环结构时,首先执行一次循环体(循环条件变更),再判断while中循环条件是否为true,如果为true,继续执行,如果为false,终止循环。!!!
【注意】
1. while(condition);;;;;;;;;;;;;;;;;;;;;;;;;;; 这里英文分号
2. 执行do - while需要明确第一次循环会不会存在隐患
*/
2.4 循环和分支的嵌套
完成一个点菜功能
while
do - while
import java.util.Scanner;
class Demo13 {
public static void main(String[] args) {
int choose = 0;
int total = 0;
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. 下单");
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);
}
}
2.5 总结
1. 循环过程中最核心的内容就是循环变量.
2. 循环过程中需要注意无限循环问题,控制无限循环问题的出现。一定要保证循环条件有效性或者代码中存在一个跳出循环的机制。
3. do while循环中,第一次循环体的执行是没有经过任何的条件判断的,需要注意!
4. while和do while循环结构是可以进行互换的。
5. 在while和do while之间选择时,一般推荐使用while循环。