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

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

相关推荐
淡海水9 小时前
07-04-并发-ConcurrentBag-T-工作窃取WorkStealing算法
开发语言·算法·c#·bag·concurrent·workstealing
leobertlan9 小时前
好玩系列:训练一个神经网络模型指导小孩玩游戏2-大局观教练
算法
Tisfy10 小时前
LeetCode 3876.构造奇偶一致的数组 II:三种情况分类讨论(其实还是脑筋急转弯)
算法·leetcode·题解·脑筋急转弯
乐迪信息11 小时前
智慧港口船舶AI算法实现在线状态监测
大数据·人工智能·深度学习·算法·计算机视觉
木井巳13 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
心抵鹊13 小时前
归并排序之翻转对(hard)
数据结构·算法
白山编程大哥13 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
shehuiyuelaiyuehao13 小时前
算法34,位运算符操作,总结
算法
Navigator_Z13 小时前
LeetCode //C - 1224. Maximum Equal Frequency
c语言·算法·leetcode
Navigator_Z14 小时前
LeetCode //C++ - 1226. The Dining Philosophers
c语言·算法·leetcode