【Java编程动手学】Java中的表达式与语句_java 什么是语句 表达式
文章目录
- 一、引言
- 二、表达式与语句基础
-
-
- 1. 表达式(Expression)
-
- 常见表达式类型:
- 示例代码:
- 2. 语句(Statement)
-
- 常见语句类型:
- 示例代码:
- 3. 语句块(Block)
-
- 示例代码:
-
- 三、程序执行顺序
-
-
- 1. 顺序结构
- 2. 流程控制对比表
-
- 四、条件分支语句
-
-
- 1. if条件分支
-
- 基本语法:
- 示例代码:
- 2. switch条件分支
-
- 基本语法:
- 示例代码:
- `break`的作用:
-
- 五、循环结构
-
-
- 1. for循环
-
- 基本语法:
- 示例代码:
- `break`与`continue`:
- 2. while循环
-
- 基本语法:
- 示例代码:
- `break`与`continue`用法同`for`循环。
- 3. do-while循环
-
- 基本语法:
- 示例代码:
- 循环结构对比表
-
- 六、return语句
-
-
-
- 基本语法:
- 示例代码:
-
-
- 七、完整代码示例
-
-
- 代码说明:
- 预期输出:
-
- 总结
一、引言
Java作为一门面向对象的编程语言,其核心逻辑由表达式和语句构成。表达式用于计算值,语句用于执行操作,而语句块(由大括号{}
包裹的语句集合)则定义了代码的作用域。掌握这些基础概念是编写高效Java程序的关键。本文将系统讲解表达式、语句、语句块,以及程序执行顺序、条件分支、循环结构和return
语句的用法,并通过代码示例和表格对比加深理解。
二、表达式与语句基础
1. 表达式(Expression)
表达式是由变量、运算符、方法调用等组成的组合,能够计算并返回一个值。表达式可以单独存在,也可以作为语句的一部分。
常见表达式类型:
- 算术表达式:
3 + 5 * 2
(结果为13) - 逻辑表达式:
a > 0 && b < 10
(返回布尔值) - 赋值表达式:
int x = 10;
(将10赋值给x,表达式值为10) - 方法调用表达式:
Math.sqrt(16)
(返回4.0)
示例代码:
public class ExpressionDemo { public static void main(String[] args) { int a = 5, b = 3; // 算术表达式 int sum = a + b; // 表达式值为8 System.out.println(\"Sum: \" + sum); // 逻辑表达式 boolean isGreater = (a > b); // 表达式值为true System.out.println(\"a > b? \" + isGreater); // 方法调用表达式 double sqrt = Math.sqrt(25); // 表达式值为5.0 System.out.println(\"Square root: \" + sqrt); }}
2. 语句(Statement)
语句是Java中执行操作的最小单位,通常以分号;
结尾。语句可以包含表达式,但表达式本身不一定是语句(如3 + 4
是表达式,但缺少分号时不是语句)。
常见语句类型:
- 声明语句:
int num;
- 赋值语句:
num = 10;
- 控制语句:
if (x > 0) {...}
- 循环语句:
for (int i = 0; i < 5; i++) {...}
示例代码:
public class StatementDemo { public static void main(String[] args) { // 声明语句 int age; // 赋值语句 age = 25; // 控制语句(if) if (age >= 18) { System.out.println(\"Adult\"); } }}
3. 语句块(Block)
语句块是由大括号{}
包裹的一组语句,用于定义代码的作用域(如方法体、循环体、条件分支等)。
示例代码:
public class BlockDemo { public static void main(String[] args) { int x = 10; // 语句块 { int y = 20; // y的作用域仅在此块内 System.out.println(\"x + y = \" + (x + y)); } // System.out.println(y); // 编译错误:y未定义 }}
三、程序执行顺序
Java程序的执行顺序遵循从上到下、逐行执行的原则,但可以通过控制语句(如条件分支、循环)改变流程。
1. 顺序结构
默认的线性执行方式。
public class SequenceDemo { public static void main(String[] args) { System.out.println(\"Step 1\"); // 先执行 System.out.println(\"Step 2\"); // 后执行 }}
2. 流程控制对比表
System.out.println(\"A\");
if (x > 0) {...}
for (int i = 0; i < 5; i++)
四、条件分支语句
1. if条件分支
根据布尔表达式的值决定是否执行代码块。
基本语法:
if (condition) { // 条件为true时执行} else if (condition2) { // 其他条件} else { // 默认情况}
示例代码:
public class IfDemo { public static void main(String[] args) { int score = 85; if (score >= 90) { System.out.println(\"A\"); } else if (score >= 80) { System.out.println(\"B\"); // 输出B } else { System.out.println(\"C\"); } }}
2. switch条件分支
根据表达式的值匹配多个case
,适合多分支场景。
基本语法:
switch (expression) { case value1: // 代码块 break; // 跳出switch case value2: // 代码块 break; default: // 默认情况}
示例代码:
public class SwitchDemo { public static void main(String[] args) { int day = 3; switch (day) { case 1: System.out.println(\"Monday\"); break; case 2: System.out.println(\"Tuesday\"); break; case 3: System.out.println(\"Wednesday\"); // 输出Wednesday break; default: System.out.println(\"Invalid day\"); } }}
break
的作用:
- 终止当前
case
的执行,防止穿透(fall-through)。 - 若省略
break
,会继续执行下一个case
的代码。
五、循环结构
1. for循环
适合已知循环次数的场景。
基本语法:
for (初始化; 条件; 迭代) { // 循环体}
示例代码:
public class ForLoopDemo { public static void main(String[] args) { for (int i = 1; i <= 5; i++) { System.out.println(\"i = \" + i); } // 输出:i=1, i=2, ..., i=5 }}
break
与continue
:
break
:立即终止整个循环。continue
:跳过当前迭代,进入下一次循环。
public class ForBreakContinue { public static void main(String[] args) { for (int i = 1; i <= 10; i++) { if (i == 6) break; // 循环在i=6时终止 if (i % 2 == 0) continue; // 跳过偶数 System.out.println(i); // 输出1, 3, 5 } }}
2. while循环
适合不确定循环次数的场景,先判断条件再执行。
基本语法:
while (condition) { // 循环体}
示例代码:
public class WhileDemo { public static void main(String[] args) { int count = 0; while (count < 3) { System.out.println(\"Count: \" + count); // 输出0,1,2 count++; } }}
break
与continue
用法同for
循环。
3. do-while循环
先执行一次循环体,再判断条件。
基本语法:
do { // 循环体} while (condition);
示例代码:
public class DoWhileDemo { public static void main(String[] args) { int num = 5; do { System.out.println(\"Num: \" + num); // 至少执行一次 num--; } while (num > 0); // 输出5,4,3,2,1 }}
循环结构对比表
六、return语句
return
用于从方法中返回结果(非void
方法)或直接终止方法执行。
基本语法:
return value; // 返回指定值(非void方法)return; // 仅终止方法(void方法)
示例代码:
public class ReturnDemo { // 非void方法 public static int add(int a, int b) { return a + b; // 返回计算结果 } // void方法 public static void greet() { System.out.println(\"Hello!\"); return; // 可省略 } public static void main(String[] args) { System.out.println(add(3, 5)); // 输出8 greet(); // 输出Hello! }}
七、完整代码示例
以下是将所有知识点整合到一个完整的可执行Java代码中,包含表达式、语句、条件分支、循环和return
语句的示例:
public class JavaBasicsDemo { // 示例方法:演示return语句 public static int calculateSum(int a, int b) { return a + b; // 返回两数之和 } // 示例方法:演示void方法中的return public static void printMessage(String msg) { if (msg == null) { System.out.println(\"Message is null!\"); return; // 提前终止方法 } System.out.println(\"Message: \" + msg); } public static void main(String[] args) { // 1. 表达式示例 int x = 10; int y = 20; int arithmeticResult = x + y * 2; // 算术表达式 boolean logicalResult = (x > 5) && (y < 30); // 逻辑表达式 System.out.println(\"算术表达式结果: \" + arithmeticResult); System.out.println(\"逻辑表达式结果: \" + logicalResult); // 2. 语句块示例 { int z = 30; // 局部变量,作用域仅在此块 System.out.println(\"语句块内的z: \" + z); } // System.out.println(z); // 编译错误:z未定义 // 3. if条件分支 int score = 85; if (score >= 90) { System.out.println(\"优秀\"); } else if (score >= 80) { System.out.println(\"良好\"); // 输出\"良好\" } else { System.out.println(\"及格\"); } // 4. switch条件分支(带break) int day = 3; switch (day) { case 1: System.out.println(\"星期一\"); break; case 2: System.out.println(\"星期二\"); break; case 3: System.out.println(\"星期三\"); // 输出\"星期三\" break; default: System.out.println(\"无效日期\"); } // 5. for循环(带break和continue) System.out.println(\"for循环示例:\"); for (int i = 1; i <= 5; i++) { if (i == 3) { continue; // 跳过本次循环 } if (i == 5) { break; // 终止循环 } System.out.println(\"i = \" + i); // 输出1, 2, 4 } // 6. while循环(带break) System.out.println(\"while循环示例:\"); int count = 0; while (count < 10) { if (count == 4) { break; // 当count=4时终止循环 } System.out.println(\"count = \" + count); // 输出0,1,2,3 count++; } // 7. do-while循环 System.out.println(\"do-while循环示例:\"); int num = 5; do { System.out.println(\"num = \" + num); // 至少执行一次 num--; } while (num > 0); // 输出5,4,3,2,1 // 8. 调用演示return的方法 int sum = calculateSum(15, 25); System.out.println(\"两数之和: \" + sum); // 9. 调用void方法 printMessage(\"Hello, Java!\"); printMessage(null); // 触发return提前终止 // 10. 程序执行顺序演示 System.out.println(\"程序开始\"); { System.out.println(\"语句块1\"); { System.out.println(\"嵌套语句块\"); } } System.out.println(\"程序结束\"); }}
代码说明:
- 表达式:演示了算术表达式和逻辑表达式的计算
- 语句块:展示了局部变量的作用域限制
- 条件分支:
if-else
根据分数输出不同评价switch
根据日期输出星期几(演示break
用法)
- 循环结构:
for
循环演示continue
和break
while
和do-while
展示基本用法
- return语句:
- 在非
void
方法中返回计算结果 - 在
void
方法中提前终止执行
- 在非
- 执行顺序:通过嵌套语句块展示从上到下的执行流程
预期输出:
算术表达式结果: 50逻辑表达式结果: true语句块内的z: 30良好星期三for循环示例:i = 1i = 2i = 4while循环示例:count = 0count = 1count = 2count = 3do-while循环示例:num = 5num = 4num = 3num = 2num = 1两数之和: 40Message: Hello, Java!Message is null!程序开始语句块1嵌套语句块程序结束
这个完整示例可以直接复制到Java开发环境中运行,涵盖了文章中提到的所有语法点,并通过实际输出验证代码逻辑。
总结
本文系统讲解了Java中表达式、语句、语句块的核心概念,并通过代码示例和表格对比了条件分支(if
/switch
)、循环结构(for
/while
/do-while
)以及return
语句的用法。掌握这些基础语法是编写高效Java程序的关键,建议通过实际编码练习加深理解。
关键点回顾:
- 表达式计算值,语句执行操作,语句块定义作用域。
- 条件分支通过
if
和switch
实现多路径选择。 - 循环结构中
break
终止循环,continue
跳过当前迭代。 return
用于返回结果或终止方法。
通过不断实践,你将能更灵活地运用这些语法构建复杂的逻辑。