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.循环嵌套

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

相关推荐
Logic1017 分钟前
C语言/数据结构贡献法题解:数组权值——所有连续子数组中不同数字个数之和(O(n)解法)
c语言·数据结构·算法·数组·时间复杂度·贡献法·哈希记录
DongQiShanRen8 分钟前
六根硬件映射(中):双站校验、生克闭环与驱动接口
数据库·人工智能·算法·rust·哈希算法·集成学习
mmmmath_321 分钟前
LeetCode.637.二叉树的层平均值
算法·leetcode
青少儿编程课堂28 分钟前
蓝桥杯·全国青少年信息素养大赛·电子学会C/C++考级:并查集连通块与朋友圈问题解析
c++·python·算法·bfs·信息学竞赛
Tisfy35 分钟前
LeetCode 2913.子数组不同元素数目的平方和 I:第一题先常数很大的O(n^2)
算法·leetcode·题解·模拟·暴力
罗湖老棍子39 分钟前
[USACO05NOV] Asteroids G(洛谷-P7368)
算法·图论·二分图匹配·最大匹配·最小顶点覆盖
AI技术新视界1 小时前
Harness^2:递归自进化智能体Harnessing框架
人工智能·深度学习·算法·harness·rsi
这个DBA有点耶1 小时前
MySQL B-tree索引并发控制优化:写密集场景的锁瓶颈与内核级解法
java·数据库·程序人生·算法·database·dba
爱读书的小胖1 小时前
Deaf Grandma:C 语言三版代码分析
算法
信奥卷王2 小时前
[GESP202503 六级] 环线(含视频)
算法