1778 字
约 5 分钟
8
第10章 Java表达式和语句
2026-09-24
无标签
第10章 Java表达式和语句
面包屑导航 章节头部 学习目标
学习目标
- 理解Java中表达式和语句的概念与区别
- 掌握算术表达式、关系表达式和逻辑表达式的使用
- 熟悉运算符优先级和结合性规则
- 学会使用表达式语句、声明语句和控制流语句
- 理解表达式求值的顺序和副作用
- 掌握复合表达式的编写和调试技巧
表达式概述
Java表达式概述
表达式是Java程序的基本构建块,它由操作数和运算符组成,用于计算并产生一个值。理解表达式的求值规则对于编写正确和高效的Java程序至关重要。
表达式 vs 语句:• 表达式:计算并产生一个值,如a + b、x > 5• 语句:执行一个动作,如int x = 10;、System.out.println();
算术表达式
int a = 10, b = 3;
int sum = a + b; // 13
int difference = a - b; // 7
int product = a * b; // 30
int quotient = a / b; // 3
int remainder = a % b; // 1
- 加法、减法、乘法运算
- 除法和取模运算
- 一元运算符(+、-)
- 自增自减运算符(++、--)
关系表达式
int x = 5, y = 10;
boolean isEqual = (x == y); // false
boolean isNotEqual = (x != y); // true
boolean isGreater = (x > y); // false
boolean isLessEqual = (x <= y); // true
- 相等性比较(==、!=)
- 大小比较(>、<、>=、<=)
- 返回布尔值
- 常用于条件判断
逻辑表达式
boolean a = true, b = false;
boolean and = a && b; // false
boolean or = a || b; // true
boolean not = !a; // false
// 短路求值
boolean result = (x > 0) && (y / x > 2);
- 逻辑与(&&)
- 逻辑或(||)
- 逻辑非(!)
- 支持短路求值
运算符优先级
运算符优先级
运算符优先级决定了表达式中运算符的执行顺序。理解优先级规则有助于编写正确的表达式和避免逻辑错误。
| 优先级 | 运算符 | 描述 | 结合性 |
|---|---|---|---|
| 1(最高) | () [] . | 括号、数组访问、成员访问 | 左到右 |
| 2 | ++ -- + - ! ~ | 一元运算符 | 右到左 |
| 3 | * / % | 乘法、除法、取模 | 左到右 |
| 4 | + - | 加法、减法 | 左到右 |
| 5 | << >> >>> | 位移运算 | 左到右 |
| 6 | < <= > >= instanceof | 关系运算 | 左到右 |
| 7 | == != | 相等性比较 | 左到右 |
| 8 | & | 按位与 | 左到右 |
| 9 | ^ | 按位异或 | 左到右 |
| 10 | 按位或 | ||
| 11 | && | 逻辑与 | 左到右 |
| 12 | |||
| 13 | ? : | 三元条件运算符 | 右到左 |
| 14(最低) | = += -= *= /= %= | 赋值运算符 | 右到左 |
注意:当不确定运算符优先级时,建议使用括号明确指定运算顺序,这样可以提高代码的可读性和避免错误。
// 不使用括号(依赖优先级)
int result1 = 2 + 3 * 4; // 14 (先乘后加)
boolean flag1 = 5 > 3 && 2 < 4; // true (先比较后逻辑)
// 使用括号(明确顺序)
int result2 = (2 + 3) * 4; // 20
boolean flag2 = (5 > 3) && (2 < 4); // true (更清晰)
语句类型
Java语句类型
语句是Java程序的执行单元,用于执行特定的动作。Java中有多种类型的语句,每种都有其特定的用途和语法。
主要语句类型
表达式语句
由表达式加分号组成,用于执行计算或方法调用。
// 赋值语句
int x = 10;
y += 5;
// 方法调用语句
System.out.println("Hello");
Math.sqrt(16);
// 自增自减语句
i++;
--count;
声明语句
用于声明变量、常量或方法,定义程序的结构。
// 变量声明
int age;
String name = "张三";
// 常量声明
final double PI = 3.14159;
// 数组声明
int[] numbers = new int[10];
控制流语句
控制程序的执行流程,包括条件语句、循环语句等。
// 条件语句
if (x > 0) {
System.out.println("正数");
}
// 循环语句
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
// 跳转语句
break;
continue;
return result;
实际应用示例
实际应用示例
通过一个表达式计算器的例子,我们来看看如何在实际项目中应用表达式和语句的知识。
public class ExpressionCalculator {
public static void main(String[] args) {
// 声明语句
double a = 10.5;
double b = 3.2;
double c = 2.0;
// 算术表达式
double sum = a + b + c; // 15.7
double average = sum / 3; // 5.233...
double complex = a * 2 + b * 3 - c; // 30.6
// 关系表达式
boolean isPositive = (average > 0); // true
boolean isEven = ((int)sum % 2 == 0); // false
// 逻辑表达式
boolean isValid = isPositive && (sum < 100); // true
// 条件表达式(三元运算符)
String result = isValid ? "有效" : "无效"; // "有效"
// 表达式语句(输出结果)
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
System.out.println("总和 = " + sum);
System.out.println("平均值 = " + average);
System.out.println("复合表达式结果 = " + complex);
System.out.println("结果验证:" + result);
}
}
💻 查看完整代码 - 在线IDE体验 常见问题和注意事项
常见问题和注意事项
表达式求值陷阱
整数除法截断:int result = 7 / 3;结果是 2,不是 2.33...解决方案:使用浮点数除法double result = 7.0 / 3;
自增自减的副作用:int i = 5; int j = ++i + i++;结果可能不是预期的建议:避免在同一表达式中多次修改同一变量
最佳实践
编写清晰的表达式:
• 使用括号明确运算顺序
• 避免过于复杂的表达式
• 合理使用变量存储中间结果
• 注意数据类型的匹配和转换
本章小结
本章小结
- 表达式由操作数和运算符组成,用于计算并产生值
- Java支持算术、关系、逻辑等多种类型的表达式
- 运算符优先级决定表达式的求值顺序
- 语句是程序的执行单元,包括表达式语句、声明语句和控制流语句
- 理解表达式求值规则有助于编写正确的程序
- 使用括号和合理的代码结构可以提高代码可读性
评论
0 条
还没有评论,先写一条吧。