JavaSE 基础语法 -逻辑控制
在我们平常的生活中我们每天都在进行各种判断和重复操作例如如果今天下雨就带伞。如果考试成绩大于或者等于60分就及格。每天坚持跑步五公里直到完成目标。程序也是一样如果程序只能从第一行一直执行到最后一行那么它几乎无法完成任何实际业务。因此Java 提供了流程控制语句让程序具备了思考和循环执行的能力。Java 中的流程控制主要包括三种顺序结构选择结构分支循环结构一、什么是流程控制流程控制Flow Control是指控制程序执行顺序的一组语法结构。Java 程序默认采用顺序执行。例如System.out.println(开始);System.out.println(学习 Java);System.out.println(结束);输出开始 学习Java结束程序会按照代码的书写顺序依次执行。但在实际开发中我们经常需要根据条件执行不同的代码或者重复执行某段代码这时就需要使用流程控制。二、选择结构2.1 if语句if 是 Java 中最常用的条件判断语句。在if语句中又分为单分支、双分支、多分之。单分支if语法if(条件表达式){// 条件成立时执行}示例intage20;if(age18){System.out.println(已成年);}输出已成年如果条件不成立则不会执行 if 代码块。双分支if…else语法if(条件){// 条件成立}else{// 条件不成立}示例intscore58;if(score60){System.out.println(考试通过);}else{System.out.println(考试不通过);}输出考试不通过多分支if…else if语法if(条件1){}elseif(条件2){}elseif(条件3){}else{}示例intscore85;if(score90){System.out.println(优秀);}elseif(score80){System.out.println(良好);}elseif(score60){System.out.println(及格);}else{System.out.println(不及格);}输出良好if 判断执行流程:程序会按照顺序依次判断条件第一个条件成立后面的条件将不会继续判断。所有条件都不成立则执行 else。因此多个条件之间要注意顺序。例如if(score60){}elseif(score80){}这种写法是存在问题的。因为80 已经满足 60所以后面的判断永远不会执行。正确的写法if(score90){}elseif(score80){}elseif(score60){}注意如果在if语句后面加上分号后这就会导致分号成为了if语句的语句体此时执行{ }中的代码是没有任何条件的。例如intx20;if(x20);// 因为这个结尾加了分号// 此处多写了一个分号, 导致分号成为了 if 语句的语句体, 而 { } 中的代码已经成为了和一个 if 无关的代码块所以就会按照代码执行的顺序往下执行{System.out.println(x 20);}2.2 switch语句当需要针对一个变量的多个固定值进行判断时使用 switch 更加简洁。语法switch(表达式){case值1:代码;break;case值2:代码;break;default:默认代码;}示例intday3;switch(day){case1:System.out.println(星期一);break;case2:System.out.println(星期二);break;case3:System.out.println(星期三);break;default:System.out.println(未知);}输出星期三break 的作用很多初学者容易忘记break。例如intnum1;switch(num){case1:System.out.println(A);case2:System.out.println(B);case3:System.out.println(C);}输出ABC原本只是想输出A但是为什么会输出ABC问题就出现在没有break,程序会发生穿透。正确的写法case1:System.out.println(A);break;注意在switch中,它并不支持任何类型的参数Java 不同版本支持的数据类型也有所不同。常见支持的有byteshortcharintStringJava7enum枚举不支持的有doublefloatbooleanlong三、循环结构循环就是重复执行代码。Java 提供三种循环forwhiledo…while3.1 for循环这是最常用的循环。语法for(初始化;条件;更新){}例如for(inti1;i5;i){System.out.println(i);}输出12345for执行流程执行顺序初始化 ↓ 判断条件 ↓ 执行循环体 ↓ 更新变量 ↓ 继续判断一直到条件不满足才会调整循环例子求 1 ~ 100的和intsum0;for(inti1;i100;i){sumi;}System.out.println(sum);// 输出5050输出九九乘法表for(inti1;i9;i){for(intj1;ji;j){System.out.print(j*i(i*j)\t);}System.out.println();}输出1*111*222*24...3.2 while循环这个循环比较适用于循环次数未知的情况。语法while(条件){}示例inti1;while(i5){System.out.println(i);i;}输出12345while 与 for 的区别forfor(inti1;i100;i)适合已知循环次数。例如输出 100 次遍历数组遍历集合whilewhile(passwordWrong){}适合不知道循环多少次。例如登录验证文件读取Socket 通信用户输入3.3 do…while循环这个循环的特点就是先执行一次再判断条件。语法do{}while(条件);示例inti1;do{System.out.println(i);i;}while(i5);输出12345即使条件不成立inti10;do{System.out.println(i);}while(i5);也会输出10因为这个循环是先执行循环语句, 再判定循环条件循环条件成立则继续执行否则循环结束。3.4 break 与 continuebreak的作用在于立即结束循环。示例for(inti1;i10;i){if(i5){break;}System.out.println(i);}输出1234执行到 break 就会让循环结束.continue的作用在于结束本次循环继续下一次循环。示例for(inti1;i5;i){if(i3){continue;}System.out.println(i);}输出1245执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句3.5 循环嵌套循环里面还可以继续写循环。例如for(inti1;i3;i){for(intj1;j2;j){System.out.println(i-j);}}输出1-11-22-12-23-13-2常用于打印图形遍历二维数组数据组合矩阵运算3.6 死循环所谓死循环就是循环条件始终成立程序无法正常结束。例如while(true){System.out.println(Hello Java);}或者for(;;){System.out.println(Hello Java);}死循环并不一定是错误在服务器程序、消息监听、网络通信等场景中会经常使用但通常需要结合 break 或其他退出条件。四、经典案例案例一判断闰年intyear2026;if((year%40year%100!0)||year%4000){System.out.println(year 是闰年);}else{System.out.println(year 是平年);}案例二输出 1~100 之间所有偶数for(inti1;i100;i){if(i%20){System.out.println(i);}}案例三猜数字RandomrandomnewRandom();ScannerscannernewScanner(System.in);inttoGuessrandom.nextInt(100);while(true){System.out.println(请输入数字:(1-100));intnumscanner.nextInt();if(numtoGuess){System.out.println(大了);}elseif(numtoGuess){System.out.println(小了);}else{System.out.println(猜对了);break;}}scanner.close();

相关新闻

计算机小程序毕设实战-基于用户协同过滤的智能音乐推荐平台设计 融合协同过滤算法的个性化音乐推荐系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

计算机小程序毕设实战-基于用户协同过滤的智能音乐推荐平台设计 融合协同过滤算法的个性化音乐推荐系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/14 16:30:50 阅读更多 →
计算机小程序毕设实战-基于 SpringBoot 的智慧医疗问诊服务平台 线上就医咨询与健康管理 APP 的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】

计算机小程序毕设实战-基于 SpringBoot 的智慧医疗问诊服务平台 线上就医咨询与健康管理 APP 的设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/15 2:42:51 阅读更多 →
写完歌可以直接发行的平台:7款AI音乐创作发行平台怎么选

写完歌可以直接发行的平台:7款AI音乐创作发行平台怎么选

写完歌以后,怎么把它真正发出去很多人以为歌曲生成完、混音导出以后,下一步就是上传,实际上创作和发行是两件完全不同的事。创作解决的是旋律、歌词、编曲和成品音频,发行解决的则是身份认证、版权信息、封面规格、音频格式、平台…

2026/9/19 5:25:18 阅读更多 →

最新新闻

WHU-RS19遥感图像分类实战:从数据集加载到模型微调的避坑指南

WHU-RS19遥感图像分类实战:从数据集加载到模型微调的避坑指南

简介:面向遥感图像分类与深度学习入门人群的WHU-RS19数据集,提供19种土地利用类型的已标注卫星图像,涵盖机场、海滩、桥梁、商业区、沙漠、农田等常用类别,可直接用于图像分类模型训练与精度评估,也可作为基准数据集检…

2026/9/24 21:15:19 阅读更多 →
Python+OpenCV+PyQt答题卡识别系统:从透视校正到桌面软件封装

Python+OpenCV+PyQt答题卡识别系统:从透视校正到桌面软件封装

简介:一套基于Python、OpenCV与PyQt的答题卡识别完整项目,适合毕业设计、期末大作业或课程设计阶段需要快速搭建可演示软件的学生参考。项目内包含全部源代码、训练与测试数据集、答辩PPT以及毕业实习报告,代码注释完整,部署流程简…

2026/9/24 21:15:19 阅读更多 →
ARP协议与ARP欺骗:从原理到防御实战指南

ARP协议与ARP欺骗:从原理到防御实战指南

出门左转再右转,你的电脑只要连了局域网,基本都绕不开ARP协议这四个字。它安静得像是网络里的背景音,平时没人注意,直到某天有人用ARP欺骗把你的网关地址“抢走”,你才会发现:为什么我Wi-Fi信号满格&#x…

2026/9/24 21:15:19 阅读更多 →
避坑指南:选购西安停车场系统需关注的售后维度

避坑指南:选购西安停车场系统需关注的售后维度

西安停车场系统选型:如何评估本地化服务与长期持有成本在西安地区进行停车管理方案的规划或改造时,决策者常常面临硬件功能趋同、后期维护成本难以预估的挑战。除了考察车牌识别率、通行效率等基础技术指标外,售后响应速度与费用结构的透明度…

2026/9/24 21:15:19 阅读更多 →
OpenLayers v3.18.1 补丁版本解析:圆形几何绘制起点修复与 HiDPI 矢量瓦片旋转修正

OpenLayers v3.18.1 补丁版本解析:圆形几何绘制起点修复与 HiDPI 矢量瓦片旋转修正

OpenLayers v3.18.1 补丁版本解析:圆形几何绘制起点修复与 HiDPI 矢量瓦片旋转修正 【免费下载链接】openlayers OpenLayers 项目地址: https://gitcode.com/gh_mirrors/op/openlayers v3.18.1 是 OpenLayers 针对 v3.18.0 引入的两处回归(regres…

2026/9/24 21:15:19 阅读更多 →
世界时UT与UTC的区别:从地球自转、闰秒到卫星导航的完整解析

世界时UT与UTC的区别:从地球自转、闰秒到卫星导航的完整解析

你打开手机看一眼时间,屏幕上显示的是“协调世界时(UTC)”,这几乎已经是现代社会的默认答案。但如果把时间退回一百年,天文台发布的整点信号叫“世界时(Universal Time, UT)”,它来自…

2026/9/24 21:14:18 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →