Java程序设计 第3章:控制语句
来源:田浩然上传的资料 / 1B003_JAVA程序设计 / ppt / 2008-02 / 03.pdf(64页,文本型PDF)
概述
本章是 Java 编程基础的核心章节,系统讲解 Java 的布尔类型、比较运算符、逻辑运算符、条件分支语句(if/switch)、条件运算符、格式化输出、运算符优先级与结合性。
核心知识点
1. 布尔类型与比较运算符(§3.2)
- Java 提供 6 个比较运算符(关系运算符):
<<=>>===!= - 比较结果为
boolean类型:true或false boolean b = (1 > 2);—— 典型用法
2. 布尔逻辑运算符(§3.2.1)
| 运算符 | 名称 | 说明 |
|---|---|---|
! | 逻辑非 | 取反 |
&& | 条件与 | 短路与 |
|| | 条件或 | 短路或 |
^ | 异或 | 互斥或 |
关键区别:&&{ /\|\| 是短路运算符(条件求值),& } ;/\| 是无条件运算符(两边都求值)。短路运算符在左边表达式已足以确定结果时不会计算右边,可避免空指针等副作用。
3. 选择语句
if 语句(§3.3)
- 基本形式:
if (booleanExpression) { statement(s); } - 括号是必须的(即使只有一条语句)
- 常见陷阱:
if (radius >= 0);—— 分号导致空语句体,逻辑错误且不报错 if...else:二选一分支else总是匹配最近的if(同一块内)else if链:多分支选择,等价于嵌套 if-else
switch 语句(§3.4)
switch表达式值类型必须是char、byte、short、int(及枚举、String)case值必须是常量表达式(不能含变量)break是可选的但应使用:不加 break 会”穿透”到下一个 casedefault可选,放在最后是好风格- case 顺序不影响结果,但建议按逻辑顺序排列
4. 条件运算符(§3.5)
- 三目运算符:
(booleanExpression) ? expression1 : expression2 - 等价于简单的 if-else 赋值:
y = (x > 0) ? 1 : -1;
5. 格式化输出(§3.6)
System.out.printf(format, items)—— 借鉴 C 的 printf- 常用格式化占位符:
%b→ boolean%c→ char%d→ 十进制整数%f→ 浮点数%e→ 科学计数法%s→ 字符串
String.format(format, ...)—— 生成格式化字符串
6. 运算符优先级与结合性(§§3.7-3.8)
- 优先级从高到低:后缀
++/--→ 一元+ - ++/--→ 强制转换 →!→* / %→+ -→< <= > >=→== !=→&→^→\|→&&→\|\|→ 赋值= += -= ... - 结合性:除赋值运算符是右结合外,所有二元运算符都是左结合
- 操作数求值顺序:Java 严格从左到右求值,即使运算符有副作用(如
x++),左边操作数也先于右边计算
关键示例
- 闰年判断:
(year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) - 税收计算:基于申报身份(单身/已婚共缴/已婚单缴/家庭纳税人)的多分支 if-else
- 猜生日:用 switch + 位运算还原生日日期
- 运算符优先级示例:
3 + 4 * 4 > 5 * (4 + 3) - 1逐步求值结果为false
与其他知识的关联
- 与《1B003_JAVA程序设计》系列其他章节(循环、数组、面向对象)构成 Java 基础体系
- 控制语句是所有编程语言的通用基础,与 C/C++/Python 对比可加深理解
- 运算符优先级与《离散数学》中的逻辑表达式求值有相通之处