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

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

相关推荐
Sinsa_SI15 小时前
2026算法应用主题赛初赛-小学4-6组(Python)试卷(含答案+详细解析)
开发语言·python·算法
Lyon1985052815 小时前
从临床医疗说起:当一种科学理论走到边界的时候
人工智能·深度学习·算法·deepseek·ai伦理
美团技术团队15 小时前
从高拟真到真可用,LongCat-Video-Avatar 1.5 正式开源
人工智能·算法
夏日听雨眠15 小时前
数据结构(BF算法 )
数据结构·算法·排序算法
夏日听雨眠15 小时前
数据结构(KMP算法)
数据结构·算法
智者知已应修善业15 小时前
【51单片机第5和6位数码管显示0-99自动计数】2023-11-29
c++·经验分享·笔记·算法·51单片机
图码16 小时前
[特殊字符] 高效统计排序数组中目标元素的出现次数
数据结构·算法·排序算法·柔性数组·图搜索
都在酒里16 小时前
算法总结(二)深入浅出 PID 控制算法:原理、优化与 STM32 标准库实现
stm32·算法·pid算法·位置pid·增式pid
Sinsa_SI16 小时前
2026算法应用主题赛初赛-小学4-6组(c++)试卷(含答案+详细解析)
java·c++·算法