当前位置: 首页 > news >正文

Java 表达式、语句、代码块

一、核心概念区分(一句话分清)

  1. 表达式(Expression):能算出一个值的代码片段,有返回结果
  2. 语句(Statement):完整执行单元,完成一件事,以;结尾,不一定有返回值
  3. 代码块(Block){}包裹的一组语句,把多条语句打包成整体,拥有独立作用域

二、表达式 Expression

1. 定义

任何可以求值、产生结果的代码,一定有返回值,可以放在赋值、判断、输出等位置。

2. 常见分类

(1)字面量表达式
10;// 整数表达式,值103.14;// 浮点数true;// 布尔"hello";// 字符串'A';// 字符
(2)变量表达式
inta=5;a;// 表达式,值为5
(3)运算表达式

算术、关系、逻辑、位运算、三元运算

a+3;// 算术a>0;// 关系(结果true/false)a>0&&a<10;// 逻辑a&1;// 位运算a>5?1:0;// 三元表达式
(4)方法调用表达式

有返回值的方法调用是表达式

Math.max(1,2);// 返回2,属于表达式"abc".length();// 返回3
(5)赋值表达式(重点)

=本身是表达式,会返回赋值后的值

inta;a=10;// 整个表达式结果是10intb=a=20;// 等价 int b = (a=20);

3. 表达式不能单独当完整代码

单独写a + 1会编译报错;加分号a + 1;就变成表达式语句

三、语句 Statement

1. 定义

Java 最小执行单元,用来完成操作,以分号;结束
语句可以由表达式衍生,也可以是控制流、声明、空语句。

2. 分类

1)表达式语句(最常用)

表达式 +;升级成语句

inta=10;// 赋值表达式语句a++;// 自增表达式语句System.out.println(a);// 方法调用语句
2)变量声明语句

定义变量,自带分号

intnum;doublepi=3.14;Stringstr="java";
3)空语句

只有一个分号,什么都不做

;// 示例(多余空语句)if(a>0);{System.out.println();}
4)控制流语句(无分号结尾,自带结构)

if / for / while / switch / break / continue / return

if(a>0){...}for(inti=0;i<10;i++){...}while(true){...}return0;// return是语句
5)复合语句 = 代码块(下一节单独讲)

3. 表达式 vs 表达式语句对比

a+5// 表达式(仅求值,不能单独放一行)a+5;// 表达式语句(合法,执行但丢弃结果)

四、代码块 Block(复合语句)

1. 格式

用大括号{ }包裹任意多条语句(0条/1条/多条都可以)

{inta=10;System.out.println(a);a++;}

2. 核心特性:作用域

代码块内定义的局部变量,仅块内可见,出}直接销毁

publicstaticvoidmain(String[]args){intouter=10;{intinner=20;System.out.println(outer);// 可以访问外部变量}System.out.println(inner);// 编译报错,inner已失效}

3. 代码块出现的场景

  1. 分支/循环后包裹多语句
if(a>0){System.out.println("大于0");a++;}
  1. 方法体本身就是代码块
publicvoidtest(){// 方法块开始// 语句}// 方法块结束
  1. 类中的实例代码块静态代码块
classDemo{// 实例代码块,创建对象时执行{System.out.println("实例块");}// 静态代码块,类加载时执行static{System.out.println("静态块");}}
  1. 单独独立代码块(缩小变量作用域)
publicstaticvoidmain(String[]args){{inttemp=99;System.out.println(temp);}// temp 不可用}

4. 特殊规则

  • 代码块整体算一条复合语句,if/while 后面不加;
  • 块内可以再嵌套代码块(多层作用域)
  • 同一个块内不能重名局部变量;内层块可以定义和外层同名变量(变量遮蔽)

五、三者嵌套完整示例

publicclassTest{publicstaticvoidmain(String[]args){// 1. 变量声明语句inta=5;// 代码块 { }{// a > 3 是表达式,if(表达式)if(a>3){// a * 2 表达式,构成表达式语句System.out.println(a*2);a=a+1;// 赋值表达式语句}}}}

拆解层级:

  1. main方法整体是代码块
  2. if(){}又是内层代码块
  3. a > 3a * 2a = a +1都是表达式
  4. int a =5;System.out.println(...);a=a+1;都是语句

六、易混易错点总结

  1. 表达式一定有值;语句不一定有值,以;结尾
  2. 表达式加分号 → 表达式语句
  3. {}包裹一堆语句 = 代码块(复合语句,整体视为一条语句)
  4. 局部变量作用域止于所属代码块的右大括号}
  5. if/for/while 后如果不写{},只能跟一条语句;多语句必须包代码块
  6. 赋值=是表达式,所以支持链式赋值int x=y=z=10;
http://www.jsqmd.com/news/1040130/

相关文章:

  • 2026年诚信的中高端装修/铜陵法式复古中高端装修实力品牌公司 - 行业平台推荐
  • Koopman算子与平均场控制在癫痫脑网络调控中的应用
  • PHP 反序列化漏洞从入门到实战
  • 2026年正规的北京平面设计与制作/展览展厅设计专业靠谱公司 - 品牌宣传支持者
  • 3个理由选择D3keyHelper:暗黑3玩家的终极智能自动化助手
  • 2026年诚信的铜陵大平层装修/铜陵老房翻新装修/铜陵二手房装修/铜陵洋房装修TOP公司推荐 - 行业平台推荐
  • Vue3 为什么选择 Proxy?看完这篇彻底搞懂 JavaScript 代理模式
  • lidR架构解析与林业LiDAR数据处理高级应用
  • 2026年优秀的管道疏通/黄山卫生间管道疏通性价比高的公司 - 行业平台推荐
  • 2026年重庆低温无缝钢管供应 宝钢行业经验参考
  • 2026年6月虹吸排水系统厂家推荐,虹吸排水系统/屋面虹吸排水/虹吸雨水斗/虹吸排水,虹吸排水系统定制厂家推荐 - 品牌推荐师
  • 美团、淘宝闪购、京东外卖:合规的牌,算盘的账
  • 谷歌六年来首款智能音箱 6 月 25 日发货,家庭版 Gemini 体验大升级!
  • 云原生技术17-从Nginx到Envoy:为什么大厂都在迁移?xDS协议 + WASM扩展:Envoy高级玩法实战
  • 2026年评价高的黄山卫生间下水道疏通/黄山下水道上门疏通/下水道上门疏通哪家好 - 行业平台推荐
  • HugeJsonViewer:打破GB级JSON文件查看的性能瓶颈
  • AI 一体式智能马桶智能功率 MOSFET 完整选型方案
  • 深度学习模型YOLO模型如何训练中国输电线路绝缘子数据集 CPLID(YOLO 目标检测)
  • ReLaGS技术:3D高斯飞溅与语言场景图的融合实践
  • 2026年优秀的中粮长城葡萄酒潍坊总代理/中粮直营店长城葡萄酒潍坊总代理/原厂直供长城葡萄酒潍坊总代理选哪家靠谱 - 行业平台推荐
  • 告别网课烦恼:WELearn网课助手5分钟快速上手指南
  • SPI EEPROM 25A512硬件保护与驱动优化实战指南
  • 3分钟解锁网易云音乐:免费音频解密转换全攻略
  • 让Word退休的在线编辑器,到底有多强?
  • PS 怎么删除背景色变成透明?4 种实操方法 + 导出透明 PNG 全流程
  • 安卓版 Firefox 浏览器更新:标签分组等新功能来袭,更多实用特性待推出!
  • LDO线性稳压器核心参数解析与TC2054/55/2186选型实战指南
  • 2026年优秀的厨房下水道疏通/下水道疏通/洗手池下水道疏通行业标杆公司 - 品牌宣传支持者
  • 医用超声系统远程诊断模块详细设计与实现
  • 企业AI建设路径:从文档管理到认知智能的四次演进