分支结构和循环结构
1.分支结构
1.1 switch case
switch case的结构是一个精确的if else if
//格式
switch (/*选项数据存储变量*/) {
case 常量1:
//处理方式1;
break;
case 常量2:
//处理方式2;
break;
case 常量3:
//处理方式3;
break;
default:
//所有的匹配项没有对应情况,最终处理方式
break;
}
/*
要求:
1.case 之后的常量数据类型目前限制在int
2.case 之后的常量数据不可以重复,具有唯一性。
3.Switch case 结构中可以执行的内容,有且只有在case之后或default之后
4.default可以省略,但是如果代码中没有匹配的选项,代码没有任何反馈~~~~
【重点强调】在 阿里巴巴 开发规范中,Switch case结构,default不允许省略!!!!
执行流程:
代码执行Switch case结构,首先取值Switch 之后变量数据内容,与case之后常量进行匹配,如果有对应匹配项,按照对应处理方式执行,如果没有任何一个case 匹配,执行default之后的代码
*/
1.2Switch case 代码演示
//switch case 案例代码演示
public class Demo2 {
public static void main(String[] args) {
//choose 选择,选项
int choose = 3;
System.out.println("开业大酬宾!!!");
System.out.println("1.胡辣汤");
System.out.println("2.老母鸡汤");
System.out.println("3.牛肉汤");
System.out.println("4.牛肉汤");
System.out.println();
//switch 小括号内就是存储当前选项的变量,目前使用 choose
switch (choose) {
//switch case 结构中,可执行的内容,有且只有在case之后和default之后
//System.out.println("开业大酬宾!!!");
case 1:
System.out.println("胡辣汤 8RMB");
break;
case 2:
System.out.println("老母鸡汤 12RMB");
break;
case 3:
System.out.println("牛肉汤 15RMB");
break;
case 4:
System.out.println("羊肉汤 20RMB");
break;
default:
System.out.println("你的选择有误");
break;
}
}
}
【补充知识点】
关注点:
目前Switch case 案例代码,如果想要执行其他的数据结果,要求用户完成以下操作
1.修改源代码对应数据
2.保存代码
3.编译代码
4.执行程序
对于普通用户而言是不可能的!!!用户期望的效果是代码运行,用户提供数据,代码执行判断情况,给予结果反馈,不需要考虑代码执行,编译,运行过程。【只要求用户提供数据】
针对当前代码而言,我们缺少可以获取用户提供数据的方式。【思想很重要】
【注意】以下知识点不重要,只是勉强完成目前代码所需,如果确实需要,请复制粘贴我的代码,不要学会,不要自己写。
目前考虑到只能使用终端来获取用户数据形式,并且终端获取数据对于后期开发没有任何实际价值。
Java中的扫描器
使用流程:
1.在public class 类名之上导包 ==>点技能点
import java.util.Scanner;
2.代码中准备 Scanner 变量 ,已备使用
Scanner sc = new Scanner (System.in);
3.根据所需,选取对应的套餐,复制粘贴解决问题,不会拉到!!!就当没讲
int类型数据
int类型变量 = sc.nextInt();
float类型数据
float类型变量 = sc.nextFloat();
double类型数据
double类型变量 = sc.nextDouble();
char类型数据
char类型变量 = sc.nextChar().charAt(0);
【补充知识点 用户操作友好提示/操作引导提示】
用户使用软件,需要在操作过程中,给予用户合理,合情,友好的提示内容,方便用户使用我们的软件
增强用户粘性!!!
【补充知识点】
在实际开发中,用户使用软件极有可能给予软件的的操作是不合法的!!!
需要考虑出现了用户提供的数据异常情况下是否用该给予用户反馈,或者采用其他的处理方式。
用户提交数据需要根据实际情况来进行合法判断,如果不合法,不可以进入正常的数据判断处理过程。中断程序运行,基于用户提示。
import java.util.Scanner;
// if else-if 分支结构代码演示
public class Demo7 {
public static void main(String[] args) {
int totalPrice = 0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的消费金额");
totalPrice = sc.nextInt();
if (totalPrice <=0) {
System.out.println("请输入正确的消费金额");
System.exit(0);
}
//消费金额递增
if (totalPrice >= 666 && totalPrice < 1688) {
System.out.println("欢迎光临,尊贵的铂金VIP");
} else if (totalPrice >= 1688 && totalPrice < 3888) {
System.out.println("欢迎光临,尊贵的黄金VIP");
} else if (totalPrice >= 3888 && totalPrice <8888) {
System.out.println("欢迎光临,尊贵的钻石VIP");
} else if (totalPrice >= 8888) {
System.out.println("欢迎光临,尊贵的钻紫VIP");
}else {
System.out.println("欢迎光临,尊贵的用户");
}
/*
消费金额递减
对比上方的条件,递减方式
1.if 之后条件内容没有逻辑与判断,效率高
2.代码量降低
3.分析条件的罗列关系
*/
int price = 1980;
if (price >= 8888) {
System.out.println("欢迎光临,尊贵的紫钻VIP");
} else if (price >= 3888) {
System.out.println("欢迎光临,尊贵的钻石VIP");
} else if (price >= 1688) {
System.out.println("欢迎光临,尊贵的黄金VIP");
} else if (price >= 666){
System.out.println("欢迎光临,尊贵的金VIP");
} else {
System.out.println("欢迎光临,尊贵的用户");
}
System.out.println("期待你的再次光临");
}
}
2.循环结构
2.1为什么要循环结构
代码中容易出现重复,复用代码,如果仅通过最为基础的 C V 操作,会导致以下问题
1.代码冗余
2.代码阅读性极差
3.代码维护性很差
2.2while 循环结构
//格式
while (/*循环条件判断 Boolean true or false*/) {
//循环体
//循环条件变更
}
/*执行流程:
代码执行while循环结构,首先判断while之后小括号中的循环条件是否为ture,如果为true执行循环,回到while之后的小括号判断,直到循环条件为false终止循环!!!
*/
public class Demo4 {
public static void main(String[] args) {
//可维护性!!
int num = 10; //int 类型变量控制循环次数
//while 小括号中, 循环条件必须是 Boolean 类型
//无限循环解决条件 ctrl + c
while (num > 0 ) {
System.out.println("你好");
num -= 1;
}
}
}
2.3 do while 循环结构
//格式
//注意 结果的分号,必须要有!!!
do {
//循环体
//循环条件变更
} while (/*循环条件判断 boolean true or false*/);
/*
执行流程:
代码执行 do while 循环结构, 首先执行一次循环体内容,再来判断 while 之后小括号循环判断条件是否为true,如果为 true 继续执行循环体,如果为 false 终止循环。
*/
//为什么要使用循环
public class Demo4 {
public static void main(String[] args) {
//num1可以认为是循环变量
int num1 = 10;
do {
System.out.println("次水果");
++num1;
} while (num1 < 20);
}
}
2.4 for 循环结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-khchYQ3W-1666606603732)(C:\Users\liangzai\AppData\Local\Temp\WeChat Files\ee82b60f7e23d2efeb71cf3dba4dca7.png)]
//格式
for (/*循环条件初始化*/; /*循环条件判断*/; /*循环条件变更*/) {
//循环体
}
//为什么要使用循环
public class Demo4 {
public static void main(String[] args) {
//for循环演示
/*
【注意】
for循环小括号中的不同条件使用 ; 分割
目前的for循环,循环次数为10次
i 的值在循环过程中的变换 0 1 2 3 4 5 6 7 8 9
*/
for(int i = 0; i < 10; i++) {
System.out.println(i);
}
}
}
循环第一次
i = 0; 0 < 10 成立,循环可以执行
i++; ==> i = 1
循环第二次
i = 1; 1 < 10 成立,循环可以执行
i++; ==> i = 2
循环第三次
i = 2; 2 < 10 成立,循环可以执行
i++; ==> i = 3
循环第四次
i = 3; 3 < 10 成立,循环可以执行
i++; ==> i = 4
循环第五次
i = 4; 4 < 10 成立,循环可以执行
i++; ==> i = 5
循环第六次
i = 5; 5 < 10 成立,循环可以执行
i++; ==> i = 6
循环第七次
i = 6; 6 < 10 成立,循环可以执行
i++; ==> i = 7
循环第八次
i = 7; 7 < 10 成立,循环可以执行
i++; ==> i = 8
循环第九次
3. 作业
尽力而为,不要钻牛角尖,群里多讨论
i = 8; 8 < 10 成立,循环可以执行
i++; ==> i = 9
循环第十次
i = 9; 9 < 10 成立,循环可以执行
i++; ==> i = 10
循环第十一次:
i = 10; 10 < 10 不成立,循环终止!!!
执行
i++; ==> i = 5
循环第六次
i = 5; 5 < 10 成立,循环可以执行
i++; ==> i = 6
循环第七次
i = 6; 6 < 10 成立,循环可以执行
i++; ==> i = 7
循环第八次
i = 7; 7 < 10 成立,循环可以执行
i++; ==> i = 8
循环第九次
3. 作业
尽力而为,不要钻牛角尖,群里多讨论
i = 8; 8 < 10 成立,循环可以执行
i++; ==> i = 9
循环第十次
i = 9; 9 < 10 成立,循环可以执行
i++; ==> i = 10
循环第十一次:
i = 10; 10 < 10 不成立,循环终止!!!