Java语法进阶篇

一、判断

1.应用场景

只有满足一定条件,对应的代码才会执行。

2.if-else语句

java 复制代码
//格式
if(关系表达式){
语句;
}
else if(关系表达式){
语句;
}
else{
语句;
}

(1)执行规则

当关系表达式的结果为真时,执行大括号里面的语句,为假则不执行。

二、选择

1.应用场景

根据条件不同执行不同代码块的结构

2.switch-case语句

java 复制代码
//格式
switch(表达式){
    case 值1:
        语句体1;
        break;
    case 值2:
        语句体2;
        break;
    ......
    default;
        语句体n;
        break;
}

(1)执行规则

先计算表达式的值,依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行过程中,遇到break就会结束。如果所有case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句。

*表达式的结果可以是字符、整数(byte、short、int)(不能是long)、枚举、字符串;

*case被匹配的值,只能是真实数据,不能写变量;

*case的值不允许重复;

*break表示结束switch语句;

*default是当所有情况都不匹配时执行。

(2)default的位置和省略

case和default的位置没有标准的上下之分,位置可以任意书写。为了代码可读性,一般case从小到大书写,将default语句写在最后面。

default是可以省略不写,此时若所有的case都不匹配,则没有任何的输出结果。

(3)case穿透

在写代码时,如果break没有写,此时会触发case穿透现象。

表达式结果和case语句进行匹配,匹配后会执行对应的语句,执行语句时没有遇见break,程序会继续执行下一个case的语句体,直到遇到break或者运行完整个switch语句。

(4)switch新特性

①箭头
java 复制代码
//格式
switch(表达式){
    case 1->{
        语句体1;
    }
    case 2->{
        语句体2;
    }
    case 3->{
        语句体3;
    }
    ......
    default->{
        语句体;
    }
}

使用箭头时不写break不会产生穿透现象,后面只有一个语句时,大括号可以省略。

②case后面可以写多个值

值和值之间用逗号隔开。

③switch可以有运行结果
④yield关键字

在switch表达式中,yeild关键字用于返回值。

java 复制代码
//举例
String dayType=switch(day){
    case "MON""TUE""WED""THU""FRI"->{
        yield "Weekday";
    }
    case "SAT""SUN"->{
        yield "Weekend";
    }
    default ->{
        yield "不存在";
    }
};

若语句只有一句,大括号和yield可以省略。

*在JDK14版本以上可以使用。

(5)if语句和switch语句使用场景

if语句用于对范围的判断,switch语句中常用于case的值是有限的。

三、循环

1.循环要素

初始化语句(开始条件)、条件判断语句(结束条件)、条件控制语句(控制条件)、循环体语句。

2.for循环

java 复制代码
//格式
for(初始化语句;条件判断语句;条件控制语句){
    循环体语句;
}

3.while循环

java 复制代码
//格式
初始化语句;
while(条件判断语句){
    循环体语句;
    条件控制语句;
}

4.for循环和while循环对比

当知道循环次数或者循环范围时常用for循环,不知道循环的次数和范围,只知道循环到结束条件时常用while循环。

5.do...while循环

java 复制代码
//格式
初始化语句;
do{
    循环语句;
    条件控制语句;
}while(条件判断语句);

do...while循环先执行循环语句,再进行判断,所以循环体至少执行依次。for循环和while循环都是先判断再执行。

6.无限循环(死循环)

java 复制代码
//格式

//for循环
for(;;){
    循环语句;
}

//while循环
while(true){
    循环语句;
}

//do...while循环
do{
    循环语句;
}while(true);

for循环中的初始化、条件判断、条件控制语句都可以省略,但是分号不能省;while和do..while循环中括号里的true都不能省。

在无限循环后面不能写任何代码,因为程序不会到达。

7.break

break是关键字,表示结束、跳出,不能单独书写,要用于switch语句或循环中。

8.continue

continue关键字,写在循环中,表示结束本次循环,进入下一次循环。

9.循环嵌套

一个循环体内部可以包含另一个循环体,外层循环没执行一次,内层循环会完成内部代码所有的迭代。

相关推荐
菜鸡爱玩1 天前
线性代数矩阵相乘
线性代数·算法·矩阵
devilnumber1 天前
Java 递归算法 详解 + 核心要点 + 实战运用 + 避坑指南
java·开发语言·算法
‎ദ്ദിᵔ.˛.ᵔ₎1 天前
双指针、滑动窗口、前缀和、二分查找 算法
算法
顾北顾1 天前
多头注意力机制
人工智能·深度学习·算法
H178535090961 天前
SolidWorks_基于草图的实体特征20_特征错误排查
算法·3d建模·solidworks
hujinyuan201601 天前
2025年12月中国电子学会青少年机器人技术等级考试试卷(二级) 真题+答案
人工智能·算法·机器人
bIo7lyA8v1 天前
算法复杂度评估的实验统计方法与可视化的技术8
算法
李老师讲编程1 天前
中国电子学会图形化2020.12月Scratch三级考级题
算法·scratch·信息学奥赛·图形化编程·scratch素材
退休倒计时1 天前
【每日一题】LeetCode 53. 最大子数组和 TypeScript
数据结构·算法·leetcode·typescript