1. 复合语句
复合语句是由一对花括号括起来的语句块,可以包含多个语句。一般用于控制流程的执行顺序。
示例代码:
public class CompoundStatementExample { public static void main(String[] args) { int a = 5; int b = 10; // 复合语句开始 { int c = a + b; System.out.println("c = " + c); } // 复合语句结束 // 其他语句 System.out.println("a = " + a); System.out.println("b = " + b); } }
代码运行结果:
c = 15 a = 5 b = 10
代码分析:
复合语句中的变量c是局部变量,只在复合语句的作用域内有效。
其他语句中的变量a和b是全局变量,在整个main函数的作用域内有效。
2. 条件语句
条件语句用于根据条件的不同来执行不同的代码块。
2.1 if条件语句
if语句根据给定的条件判断是否执行特定的代码块。
示例代码:
public class IfStatementExample { public static void main(String[] args) { int x = 10; if (x > 5) { System.out.println("x大于5"); } else { System.out.println("x小于等于5"); } } }
代码运行结果:
x大于5
代码分析:
如果x的值大于5,则执行if条件语句中的代码块,否则执行else中的代码块。
2.2 switch多分支语句
switch语句根据给定的表达式的值,从多个选项中选择一个分支执行。
示例代码:
public class SwitchStatementExample { public static void main(String[] args) { int day = 3; String dayOfWeek; switch (day) { case 1: dayOfWeek = "星期一"; break; case 2: dayOfWeek = "星期二"; break; case 3: dayOfWeek = "星期三"; break; default: dayOfWeek = "未知"; break; } System.out.println("今天是" + dayOfWeek); } }
代码运行结果:
今天是星期三
代码分析:
根据day的值,选择相应的分支执行。如果找不到匹配的分支,则执行default分支。
3. 循环语句
循环语句用于重复执行一段代码,直到给定的条件不再满足为止。
3.1 while循环语句
while循环语句在执行循环体之前先判断条件是否成立,如果条件成立,则执行循环体。
示例代码:
public class WhileLoopExample { public static void main(String[] args) { int i = 1; while (i <= 5) { System.out.println("i = " + i); i++; } } }
代码运行结果:
i = 1 i = 2 i = 3 i = 4 i = 5
代码分析:
在每次循环开始时,先判断i <= 5的条件是否成立。
如果条件成立,则执行循环体中的代码,然后将i的值加1。
循环会一直执行,直到条件不再满足为止。
3.2 do…while循环语句
do...while循环语句先执行一次循环体,再判断条件是否成立,如果条件成立,则继续执行循环体。
示例代码:
public class DoWhileLoopExample { public static void main(String[] args) { int i = 1; do { System.out.println("i = " + i); i++; } while (i <= 5); } }
代码运行结果:
i = 1 i = 2 i = 3 i = 4 i = 5
代码分析:
在每次循环开始时,先执行循环体中的代码。
然后判断i <= 5的条件是否成立。
如果条件成立,则继续执行循环体。
循环会一直执行,直到条件不再满足为止。
3.3 for循环语句
for循环语句在执行循环之前执行一次初始化语句,然后判断条件是否成立,如果条件成立,则执行循环体,并执行循环后操作。
示例代码:
public class ForLoopExample { public static void main(String[] args) { for (int i = 1; i <= 5; i++) { System.out.println("i = " + i); } } }
代码运行结果:
i = 1 i = 2 i = 3 i = 4 i = 5
代码分析:
在循环开始之前,先执行int i = 1的初始化语句。
每次循环开始时,先判断i <= 5的条件是否成立。
如果条件成立,则执行循环体中的代码,然后执行i++的循环后操作。
循环会一直执行,直到条件不再满足为止。
4. 循环控制
循环控制用于在循环体内部控制循环的执行流程。
4.1 break语句
break语句用于立即退出循环,不再执行循环体中剩余的代码。
示例代码:
public class BreakStatementExample { public static void main(String[] args) { for (int i = 1; i <= 5; i++) { if (i == 3) { break; } System.out.println("i = " + i); } } }
代码运行结果:
i = 1 i = 2
代码分析:
在循环体中使用if条件判断,当i等于3时,执行break语句退出循环。
因此,循环体只会执行两次,输出结果为1和2。
4.2 continue语句
continue语句用于跳过当前循环迭代,继续执行下一次循环迭代。
示例代码:
public class ContinueStatementExample { public static void main(String[] args) { for (int i = 1; i <= 5; i++) { if (i == 3) { continue; } System.out.println("i = " + i); } } }
代码运行结果:
i = 1 i = 2 i = 4 i = 5
代码分析:
在循环体中使用if条件判断,当i等于3时,执行continue语句跳过当前循环迭代。
因此,循环体不会执行输出语句,输出结果为1、2、4、5。
5. 实践与练习
在学习完流程控制和循环控制后,可以尝试以下练习并进行实践:
编写一个程序,使用循环语句输出1到100之间所有的偶数。
编写一个程序,使用循环语句计算1到10之间所有整数的和并输出结果。
编写一个程序,使用循环语句计算阶乘并输出结果。提示:阶乘是指从1乘到给定的数,如4的阶乘为1 x 2 x 3 x 4 = 24。
可以通过编写代码实现以上练习,并运行程序查看结果。
编写一个程序,使用循环语句输出1到100之间所有的偶数。
for (int i = 1; i <= 100; i++) { if (i % 2 == 0) { System.out.println(i); } }
代码分析:
以上代码使用for循环,从1到100遍历所有数字,通过判断i是否能被2整除来判断是否为偶数,如果是偶数则输出。
编写一个程序,使用循环语句计算1到10之间所有整数的和并输出结果。
int sum = 0; for (int i = 1; i <= 10; i++) { sum += i; } System.out.println("1到10的和为: " + sum);
代码分析:
以上代码使用for循环,从1到10遍历所有整数,将每个整数累加到变量sum中,最后输出sum的值。
编写一个程序,使用循环语句计算阶乘并输出结果。
int n = 4; // 计算4的阶乘 int factorial = 1; for (int i = 1; i <= n; i++) { factorial *= i; } System.out.println(n + "的阶乘为: " + factorial);
代码分析:
以上代码使用for循环,从1到给定的数n遍历,将每个数字相乘并赋值给变量factorial,最后输出factorial的值作为阶乘的结果。在这个例子中,计算的是4的阶乘。