Java 表达式、语句、代码块
一、核心概念区分一句话分清表达式Expression能算出一个值的代码片段有返回结果语句Statement完整执行单元完成一件事以;结尾不一定有返回值代码块Block{}包裹的一组语句把多条语句打包成整体拥有独立作用域二、表达式 Expression1. 定义任何可以求值、产生结果的代码一定有返回值可以放在赋值、判断、输出等位置。2. 常见分类1字面量表达式10;// 整数表达式值103.14;// 浮点数true;// 布尔hello;// 字符串A;// 字符2变量表达式inta5;a;// 表达式值为53运算表达式算术、关系、逻辑、位运算、三元运算a3;// 算术a0;// 关系结果true/falsea0a10;// 逻辑a1;// 位运算a5?1:0;// 三元表达式4方法调用表达式有返回值的方法调用是表达式Math.max(1,2);// 返回2属于表达式abc.length();// 返回35赋值表达式重点本身是表达式会返回赋值后的值inta;a10;// 整个表达式结果是10intba20;// 等价 int b (a20);3. 表达式不能单独当完整代码单独写a 1会编译报错加分号a 1;就变成表达式语句。三、语句 Statement1. 定义Java 最小执行单元用来完成操作以分号;结束。语句可以由表达式衍生也可以是控制流、声明、空语句。2. 分类1表达式语句最常用表达式 ;升级成语句inta10;// 赋值表达式语句a;// 自增表达式语句System.out.println(a);// 方法调用语句2变量声明语句定义变量自带分号intnum;doublepi3.14;Stringstrjava;3空语句只有一个分号什么都不做;// 示例多余空语句if(a0);{System.out.println();}4控制流语句无分号结尾自带结构if / for / while / switch / break / continue / returnif(a0){...}for(inti0;i10;i){...}while(true){...}return0;// return是语句5复合语句 代码块下一节单独讲3. 表达式 vs 表达式语句对比a5// 表达式仅求值不能单独放一行a5;// 表达式语句合法执行但丢弃结果四、代码块 Block复合语句1. 格式用大括号{ }包裹任意多条语句0条/1条/多条都可以{inta10;System.out.println(a);a;}2. 核心特性作用域代码块内定义的局部变量仅块内可见出}直接销毁publicstaticvoidmain(String[]args){intouter10;{intinner20;System.out.println(outer);// 可以访问外部变量}System.out.println(inner);// 编译报错inner已失效}3. 代码块出现的场景分支/循环后包裹多语句if(a0){System.out.println(大于0);a;}方法体本身就是代码块publicvoidtest(){// 方法块开始// 语句}// 方法块结束类中的实例代码块、静态代码块classDemo{// 实例代码块创建对象时执行{System.out.println(实例块);}// 静态代码块类加载时执行static{System.out.println(静态块);}}单独独立代码块缩小变量作用域publicstaticvoidmain(String[]args){{inttemp99;System.out.println(temp);}// temp 不可用}4. 特殊规则代码块整体算一条复合语句if/while 后面不加;块内可以再嵌套代码块多层作用域同一个块内不能重名局部变量内层块可以定义和外层同名变量变量遮蔽五、三者嵌套完整示例publicclassTest{publicstaticvoidmain(String[]args){// 1. 变量声明语句inta5;// 代码块 { }{// a 3 是表达式if(表达式)if(a3){// a * 2 表达式构成表达式语句System.out.println(a*2);aa1;// 赋值表达式语句}}}}拆解层级main方法整体是代码块if(){}又是内层代码块a 3、a * 2、a a 1都是表达式int a 5;、System.out.println(...);、aa1;都是语句六、易混易错点总结表达式一定有值语句不一定有值以;结尾表达式加分号 → 表达式语句{}包裹一堆语句 代码块复合语句整体视为一条语句局部变量作用域止于所属代码块的右大括号}if/for/while 后如果不写{}只能跟一条语句多语句必须包代码块赋值是表达式所以支持链式赋值int xyz10;

相关新闻

LDO线性稳压器核心参数解析与TC2054/55/2186选型实战指南

LDO线性稳压器核心参数解析与TC2054/55/2186选型实战指南

1. 项目概述:为什么LDO依然是电源设计的基石在各类电子设备中,电源管理芯片就像心脏,为整个系统提供稳定、清洁的能量。作为一名硬件工程师,我经手过无数电源方案,从复杂的多相DCDC到精巧的电荷泵,但有一个…

2026/6/19 4:20:21阅读更多 →
安卓虚拟定位终极指南:如何用FakeLocation保护隐私并模拟任意位置

安卓虚拟定位终极指南:如何用FakeLocation保护隐私并模拟任意位置

安卓虚拟定位终极指南:如何用FakeLocation保护隐私并模拟任意位置 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 你是否厌倦了应用无休止地追踪你的真实位置&#xf…

2026/6/19 4:20:21阅读更多 →
三大权威实锤:低代码工作流搞定企业90%数字化痛点

三大权威实锤:低代码工作流搞定企业90%数字化痛点

很多企业的数字化转型,早已陷入“重投入、低回报、伪升级”的恶性循环。 从OA、CRM、ERP到MES、WMS,系统越上越多,架构越做越复杂,团队人力成本、软件采购成本、运维迭代成本持续攀升,但真实业务效率并未同步提升。反而…

2026/6/19 4:20:21阅读更多 →
函数递归:根据传入的序号,计算对应学生的年龄

函数递归:根据传入的序号,计算对应学生的年龄

#include <stdio.h> // 递归函数&#xff1a;根据传入的序号&#xff0c;计算对应学生的年龄 int getAge(int curPersonnum) {// 定义变量存储年龄int age;// 递归终止条件&#xff1a;第1个学生年龄为10岁if(curPersonnum 1){age 10;}else{// 不是第一个学生&#xff…

2026/6/19 6:00:32阅读更多 →
Microchip 24XX64F EEPROM选型、硬件设计与软件驱动全解析

Microchip 24XX64F EEPROM选型、硬件设计与软件驱动全解析

1. 项目概述&#xff1a;为什么我们需要一份EEPROM选型指南&#xff1f;在嵌入式开发的世界里&#xff0c;我们每天都在和各种存储器打交道。Flash负责存储程序代码&#xff0c;RAM负责程序运行时的高速读写&#xff0c;而有一种看似不起眼却至关重要的芯片&#xff0c;它负责保…

2026/6/19 6:00:32阅读更多 →
93LC46/56/66 EEPROM实战指南:从选型、驱动到可靠性设计

93LC46/56/66 EEPROM实战指南:从选型、驱动到可靠性设计

1. 项目缘起&#xff1a;为什么需要深挖93LC系列EEPROM&#xff1f;在嵌入式开发的日常里&#xff0c;存储配置参数、校准数据或者运行日志是再常见不过的需求。你可能用过I2C的AT24C系列&#xff0c;也可能用过SPI接口的Flash&#xff0c;但当你面对一个引脚资源极其紧张、成本…

2026/6/19 6:00:32阅读更多 →
AI应用软件开发流程通

AI应用软件开发流程通

开发一款AI应用软件&#xff08;如AI聊天助手、智能文本生成器、图像识别软件等&#xff09;与开发传统软件有很大不同。传统软件主要依赖“硬编码”的业务逻辑&#xff0c;而AI应用的核心在于数据、模型与工程化落地的结合。一个完整的AI应用软件开发流程通常包含以下六个核心…

2026/6/19 6:00:32阅读更多 →
串口服务器波特率踩坑记录

串口服务器波特率踩坑记录

改完波特率看着正常&#xff0c;一发数据全乱码。你大概率踩了Moxa虚拟串口最隐蔽的坑。问题现场 上周帮朋友排查一个怪事。 他在Ubuntu里用stty命令&#xff0c;把Moxa虚拟串口设成115200。 参数显示都对&#xff0c;但他一发数据&#xff0c;收到的全是乱码&#xff0c;最后发…

2026/6/19 6:00:32阅读更多 →
NET环境使用PaddleSharp的入门Demo-控制台

NET环境使用PaddleSharp的入门Demo-控制台

目录1、背景说明2、代码实现2.1 文件准备2.2 代码实现2.3 效果如下3、注意事项1、背景说明 OCR识别在实际工作中的经常使用&#xff0c;PaddleSharp&#xff0c;是对PaddlePaddle的NET封装。使用起来非常简单。 2、代码实现 2.1 文件准备 提前准备的图片&#xff0c;里面的内…

2026/6/19 5:55:32阅读更多 →
Photobucket付费墙背后:5美元买童年回忆却落得一场空!

Photobucket付费墙背后:5美元买童年回忆却落得一场空!

1. 付费墙初现如今身处万亿市值公司林立的时代&#xff0c;我们也不能轻易放弃5美元。就像Photobucket&#xff0c;它曾相当于过去的Imgur&#xff0c;我们小时候常把图片上传到这个网站&#xff0c;然后在各种论坛上分享链接&#xff0c;它简单好用&#xff0c;尽职尽责。但最…

2026/6/19 0:04:37阅读更多 →
如何在5分钟内掌握Mermaid Live Editor:实时图表编辑终极指南

如何在5分钟内掌握Mermaid Live Editor:实时图表编辑终极指南

如何在5分钟内掌握Mermaid Live Editor&#xff1a;实时图表编辑终极指南 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live…

2026/6/19 0:04:37阅读更多 →
yuzu模拟器内存修改技术深度解析:金手指功能实现原理与实践指南

yuzu模拟器内存修改技术深度解析:金手指功能实现原理与实践指南

yuzu模拟器内存修改技术深度解析&#xff1a;金手指功能实现原理与实践指南 【免费下载链接】yuzu 项目地址: https://gitcode.com/GitHub_Trending/yuz/yuzu yuzu作为目前最流行的开源Nintendo Switch模拟器&#xff0c;不仅提供了完整的游戏运行环境&#xff0c;还内…

2026/6/19 0:04:37阅读更多 →