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);
}
}
本文深入解析了switch-case语句的结构与执行流程,强调了其在代码设计中的注意事项,同时对比了while与do-while循环的不同特性,通过实例展示了循环与分支嵌套的应用。

3896

被折叠的 条评论
为什么被折叠?



