Java语言的编程基础_流程控制语句
流程控制语句
分支结构
分支结构的概念
•当需要进行条件判断并做出选择时,使用分支结构。
•if(条件表达式) {
语句块;
}
•判断条件表达式是否成立
=> 若成立,则执行语句块;
=> 若不成立,则跳过语句块;
if else分支结构
•if(条件表达式) {
语句块1;
} else {
语句块2;
}
•判断条件表达式是否成立
=> 若成立,则执行语句块1;
=> 若不成立,则执行语句块2;
if else if else分支结构
•if(条件表达式1) {
语句块1; }
else if(条件表达式2) {
语句块2; }
else {
语句块n; }
•判断条件表达式1是否成立
=> 若成立,则执行语句块1;
=> 若不成立,则判断条件表达式2是否成立
=> 若成立,则执行语句块2;
=> 若不成立,则执行语句块n;
switch case分支结构
•switch(变量/表达式) {
case 字面值1: 语句块1; break;
case 字面值2: 语句块2; break;
...
default:语句块n;
}
•计算变量/表达式的数值=> 判断是否匹配字面值1
=> 若匹配,则执行语句块1 => 执行break跳出当前结构
=> 若不匹配,则判断是否匹配字面值2
=> 若匹配,则执行语句块2 => 执行break跳出当前结构
=> 若不匹配,则执行语句块n
•switch()中支持的数据类型有:byte、short、char以及int类型,从jdk1.5开始支持枚举类型,从jdk1.7开始支持String类型。
循环结构
循环结构的概念
•在Java程序中若希望重复执行一段代码时,就需要使用循环结构。
•任何复杂的程序逻辑都可以通过顺序、分支、循环三种程序结构实现。
for循环
•for(初始化表达式; 条件表达式; 修改初始值表达式) {
循环体;
}
•执行初始化表达式=> 判断条件表达式是否成立
=> 成立则执行循环体=> 修改初始值表达式=> 判断条件是否成立
=> 若不成立,则循环结束
continue关键字
•continue语句用在循环体中,用于结束本次循环而开始下一次循环。
break关键字
•break用于退出当前语句块,break用在循环体中用于退出循环。
•for(;;) -这种没有循环条件的循环叫做无限循环,俗称“死循环”
双重for循环的格式
•for(初始化表达式1; 条件表达式2; 修改初始值表达式3) {
for(初始化表达式4; 条件表达式5; 修改初始值表达式6) {
循环体;
}
}
双重for循环的执行流程
•执行表达式1 => 判断表达式2是否成立
=> 若成立,则执行表达式4 => 判断表达式5是否成立
=> 若成立,则执行循环体=> 执行表达式6 => 表达式5是否成立
=> 若不成立,则内层循环结束=> 表达式3 => 表达式2是否成立
=> 若不成立,则外层循环结束
•外层循环用于控制打印的行数,内层循环用于控制打印的列数,外层循环改一下,内层循环从头到尾跑一圈。
•在以后的开发中若需要打印多行多列时,需要使用双重循环。
•多重循环不宜嵌套太多层,否则效率很低。一般到三重循环即可,最常见的就是双重循环。
break关键字跳出多层循环
•在嵌套的循环结构中,break用于退出所在循环体。
•如果要退出外层循环体,需要使用标号的方式。
for (...) { outer: for (...) {
for(...) { for(...) {
break; break outer;
} }
} }
while循环
•while(条件表达式) {
循环体;
}
•判断条件表达式是否成立
=> 若成立,则执行循环体=> 判断条件表达式是否成立
=> 若不成立,则循环结束
while循环和for循环比较
•while循环和for循环完全可以互换,当然推荐使用for循环。
•while循环更适合于明确循环条件但不明确循环次数的场合中。
•for循环更适合于明确循环次数或范围的场合中。
•while(true) 等价于for(;;) 都表示无限循环。
do while循环(熟悉)
•do {
循环体;
} while(条件表达式);
•执行循环体=> 判断条件表达式是否成立
=> 若成立,则执行循环体=> 判断条件表达式是否成立
=> 若不成立,则循环结束
•do-while循环主要用于至少执行一次循环体的场合中。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示