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

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

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

2026/7/26 21:49:07 阅读更多 →
写完歌可以直接发行的平台:7款AI音乐创作发行平台怎么选

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

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

2026/7/26 21:49:08 阅读更多 →

最新新闻

Typora -mac版本永久免费

Typora -mac版本永久免费

适用于 Typora 1.9.5 或更早的版本 打开typora包内容找到 /Applications/Typora.app/Contents/Resources/TypeMark/pagedist/static/js/LicenseIndex.180dd4c7.6d698c41.chunk.js 使用文本编辑器打开 搜索 hasActivated"true"e.hasActivated 将它改为 hasActivate…

2026/7/27 5:45:41 阅读更多 →
PHP开源电商系统全解析:从部署到核心代码实战

PHP开源电商系统全解析:从部署到核心代码实战

如果你正在寻找一个完整的、可直接部署的电商项目源码来学习或作为毕业设计,那么这篇文章就是为你准备的。今天我们要深入剖析的是一个名为“沁心线上面包甜品系统”的PHP项目。它不仅仅是一个简单的购物车,而是一个包含了用户端、商家后台、完整订单流程…

2026/7/27 5:45:41 阅读更多 →
Unity与ROS2通信配置实战:打通机器人仿真与算法开发

Unity与ROS2通信配置实战:打通机器人仿真与算法开发

1. 项目概述:为什么要在Unity里搞ROS?如果你正在做机器人仿真、数字孪生或者自动驾驶相关的开发,那你大概率听说过ROS(Robot Operating System)和Unity。ROS是机器人领域的“事实标准”中间件,负责管理机器…

2026/7/27 5:45:41 阅读更多 →
eNSP 华为防火墙基于时间段安全策略完整实验

eNSP 华为防火墙基于时间段安全策略完整实验

🔥前言很多同学初学防火墙只会写一条简单 permit 策略,但是真实企业内网权限非常精细化: 办公员工工作日上班时段才允许登录 OA 办公系统,下班禁止访问; 办公人员随时随地可以访问企业官网; 生产车间员工随…

2026/7/27 5:45:41 阅读更多 →
RAG混合检索系统架构与优化实践

RAG混合检索系统架构与优化实践

1. RAG混合检索系统架构深度解析RAG(检索增强生成)系统已经成为当前AI应用开发的热门架构选择。作为一名长期从事AI系统开发的工程师,我发现混合检索方案在实际业务场景中表现尤为突出。与单一检索方式相比,混合检索能够同时兼顾语…

2026/7/27 5:45:40 阅读更多 →
TM4C129XKCZAD看门狗与ADC寄存器级配置与调试实战

TM4C129XKCZAD看门狗与ADC寄存器级配置与调试实战

1. 项目概述与核心价值在嵌入式系统开发,尤其是基于ARM Cortex-M内核的微控制器项目中,看门狗定时器和模数转换器是两个基石级的外设。前者是系统稳定运行的“守护神”,后者是连接物理世界与数字世界的“桥梁”。今天,我们就以德州…

2026/7/27 5:44:40 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

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

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

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

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻