Day5 学习分享 - switch case 和循环结构

本文深入解析了switch-case语句的结构与执行流程,强调了其在代码设计中的注意事项,同时对比了while与do-while循环的不同特性,通过实例展示了循环与分支嵌套的应用。
1. switch case
语句结构:
	switch (/* 变量 */) {
    case 常量选择1:
        // 处理方式1;
        break;
    case 常量选择2:
        // 处理方式2;
        break;
    case 常量选择3:
        // 处理方式3;
        break;
    default:
        // 最终处理方式;
        break;
        // break语句用于结束switch case语句的运行
}
执行流程:
	运行到switch语句, 先取出小括号中变量, 然后挨个匹配case中的常量, 若有对应的匹配, 则执行对应的处理方式.如果没有找到匹配项, 则执行default里的最终处理方式.
    
/*
当前进度下只考虑int数据类型
*/

注意事项:

	1. 在switch - case 结构中, 有且只能执行case, 或者default之后的语句. 如果存在case 和deault之外的语句, 是无法执行的, 对于Java而言是unreachable code.
switch (choice) {
			//报错 (无效代码, 没有case 没有default)
		>>>	System.out.println("战斧牛排 388RMB");
			case 1:
				System.out.println("五顺斋烤鸭 82RMB");
				break;
	2. 在swtich - case结构中, 如果存在case或者default选择缺少break操作.代码会继续运行到下一个break, 或者大括号} (switch case结尾大括号) 终止switch - case.
switch (choice) {
			case 1:
				System.out.println("五顺斋烤鸭 82RMB");
				break;
			case 2:
				System.out.println("火锅 180RMB");
        	//正常编译正常运行, 但是case2 发生时会出现case3结果
			case 3:
				System.out.println("擀面皮 5RMB");
				break;
	3. 在switch - case结构中, 不允许出现相同的case选项, 代码无法进行操作选择, 因为所有的case 选择是平级的.
switch (choice) {
			case 1:
				System.out.println("五顺斋烤鸭 82RMB");
				break;
			case 2:
				System.out.println("火锅 180RMB");
        	// 标签重复
			case 2:
				System.out.println("擀面皮 5RMB");
				break;
	4. 在switch - case 结构中, default可以省略, 代码编译不会受到影响, 没有语法错误. 但是失去了switch - case 自带的一种异常情况处理方式. 在AJCG阿里巴巴Java开发规范中, 是不推荐省略default的.
2. 循环结构
2.1 为何使用循环结构?
代码中一定会出现需要循环出现的情况, 在这些情况中, 如果我们不使用循环结构来处理, 会导致以下问题: 
	1. 代码阅读性极差
	2. 代码维护性极差
	3. 代码冗余
2.2 while循环
代码格式:
while (/*循环条件:true or false*/) {
    // 循环体
    // (循环条件变更)
}

执行流程:
	当程序运行到while循环结构时, 首先判断while之后的小括号里面的循环条件是否为true
    如果为true,执行循环体,再回到循环条件判断,直到循环条件为false, 终止循环
2.3 do - while 循环
代码格式:
do {
    // 循环体
    // (循环条件变更)
} while (/*循环条件判断*/);

执行流程:
	当程序执行到do - while循环结构式, 首先执行一次循环体(循环条件变更),再来判断while中循环条件判断是否为true, 如果为true,继续执行,如果为false,终止循环.
【注意】
	1. while (condition) ;;;;;;;;;;;;;;;;;  这里有英文分号!!!
	2. 执行do - while需要明确第一次循环会不会存在隐患.
2.4 循环和分支的嵌套
例子:

/*
使用while循环,完成一个点菜系统
	1. 完成用户的点菜功能
	2. 点菜之后输出总价
	3. 用户指定方式退出
*/
import java.util.Scanner;

class Demo1 {
	public static void main(String[] args) {
		/*
		这里需要一个变量 int类型,作为用户的选择
		变量名 choose
		*/
		int chooce = 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);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值