初步学习
流程控制语句
顺序结构
顺序结构指java运行结果的排序由代码的先后顺序决定
例
if语句
if的基本格式为
if (关系表达式){
语句体;
}
如果满足“()”内的关系表达式,则运行“{}”内的语句体,反之则不会运行
以该模型为例
需求:键盘录入一整数来表示身体状况,若该值大于2,则可以喝两瓶酒,反之则不行
所写代码
输入3
输入2
由此可见“if”语句的运行规律
if的注意点
1.大括号的开头可以另起一行书写,但尽量写在第一行末尾
2.在语句体中,如果只有一句代码,则可以不写大括号(个人建议不要省略)
3.如果对一个布尔类型的变量进行判断,不要用“==”
if的第二种格式
第二种格式为
if(关系表达式){
语句体1;
}else{
语句体2;
}
逻辑:若关系表达式的值为“true”则运行“语句体1”,若关系表达式的结果为“false”则运行“语句体2”
以该模型为例
键盘录入一个整数表示自己的余额,若余额大于500,则可以用钱买新卡包,反之则用金币买
所写代码
输入1100
输入300
由此可见“if”的第二种格式规律
if的第三种格式
第三种格式为
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}
...
else{
语句体n;
}
执行流程
若“关系表达式1”结果为“true”则运行“语句体1”,若“关系表达式1”结果为“false”,则计算“关系表达式2”
若“关系表达式2”结果为“true”则运行“语句体2”,若“关系表达式2”结果为“false”,则计算“关系表达式3”
...
若上述关系表达式结果全为“false”,则运行“语句体n”
以该模型为例
键盘录入一个整数作为余额,若余额数高于1000,则购买488预购,若余额数高于700低于1000则购买256黄金合集,若余额数高于400低于700,则购买128普通合集,若余额数低于400,则什么都不买
所写代码如下
由于我太懒一个一个试太麻烦,就不在这里贴上结果了
switch语句
switch的基本格式为
switch(表达式){
case值1:
语句体1;
break;
case值2:
语句体2;
break;
case值3:
语句体3;
brak;
default:
语句体n;
break;
}
格式说明:1.表达式:(将要匹配的值)取值为byte,char,int,short(不可使用布尔类型),JDK5以后可以用枚举,JDK7以后可以用String
2.case:后面跟的是要和表达式进行比较的值(被匹配的值)
3.break:表示中断,结束的意思,用来结束switch语句
4.default:表示所有情况都不匹配的时候,就执行该处的内容
5.case后面的值只能是字面量,不能是变量
6.case给出的值不语序重复
以该模型为例:
键盘录入一个值,表示今天想要玩的游戏,现在可以玩的游戏为“死亡细胞,炉石传说,LOL”,若没有想玩的游戏,则跑去内卷
所写代码如下
输入“魔兽世界”
答案当然是继续内卷辣!!!
注意点
default:1.default可以不放在代码末端(不过我感觉放在其他地方比较难受)
2.default可以省略,若表达式没有契合的“case”,则不会输出任何结果
case穿透:如果每行代码后面没有写“break”,则会导致case穿透
如下图
将“break”注释掉
运行并输入“死亡细胞”,运行结果如下
case穿透的执行流程:先用语句体的内容进行匹配,会从匹配到的“case”处执行下一个“case”,直到遇到“break”或者“}”,因为该代码中没有“break”,所以会导致case穿透
简化switch
若“case”内只有一行代码,可以使用以下格式
case 1 -> System.out.println("...")