Java循环语句(while、do while和for)
循环结构是在一定条件下反复执行一段语句的流程结构,如重复输出一条语句特定的次数,或者对数据集中的每个数据执行相同的验证逻辑。
Java 中有 3 种循环语句,分别是 while、do while 和 for。
while 循环语句的流程图是:
图 1 while循环语句的流程图
while 循环语句的特点是先判断再循环,循环体的执行次数大于或等于 0。当循环条件的值为 true 时执行。while 循环语句中应有使循环趋向于结束的语句,否则会出现无限循环,即死循环。
【实例】使用 while 循环语句求 1~100 的累加和。
do while 循环语句的语法格式如下:
do while 循环语句的流程图如下:
图 2 do while循环语句的流程图
【实例】使用 do while 循环语句改写前面的 while 实例。
for 循环语句的特点是先判断后执行,循环体的执行次数大于或等于 0,当条件表达式的值为 true 时执行。
for 循环语句的语法格式如下:
for 循环语句的流程图如下:
图 3 for循环语句的流程图
【实例】使用 for 循环语句改写前面的 do while 实例。
for 循环语句和 while 循环语句在执行循环体之前测试循环条件,属于当型循环,循环体可能一次都不执行。
do while 循环语句在执行循环体之后测试循环条件,属于直到型循环,至少执行一次循环体。
for 循环语句更适合用于明确知道循环次数的场景。
while 循环语句和 do while 循环语句更适合用于循环次数不明确,以及当某个条件改变时再结束循环的场景。
Java 中有 3 种循环语句,分别是 while、do while 和 for。
while循环语句
while 循环语句的语法格式如下:while(循环条件){ 循环体; }上述语句的执行顺序如下:
- 计算循环条件的值。
- 如果循环条件的值为 true,那么先执行一次循环体,再返回上一步。
- 如果循环条件的值为 false,那么结束循环语句。
while 循环语句的流程图是:
图 1 while循环语句的流程图
while 循环语句的特点是先判断再循环,循环体的执行次数大于或等于 0。当循环条件的值为 true 时执行。while 循环语句中应有使循环趋向于结束的语句,否则会出现无限循环,即死循环。
【实例】使用 while 循环语句求 1~100 的累加和。
public class Test { public static void main(String[] args) { int i = 1; int sum = 0; // 用于统计最终的结果 while (i <= 100) { // 循环条件 // 相当于 sum = sum + i; sum += i; i++; } System.out.println("Sum = " + sum); } }运行结果为:
Sum = 5050
do while循环语句
do while 循环语句与 while 循环语句类似,只是 while 循环语句先判断后循环,do while 循环语句则先循环后判断,循环体至少执行一次。do while 循环语句的语法格式如下:
do{ 循环体; }while(循环条件);
do while 循环语句的流程图如下:
图 2 do while循环语句的流程图
【实例】使用 do while 循环语句改写前面的 while 实例。
public class Test { public static void main(String[] args) { int i = 1; int sum = 0; do { sum += i; i++; } while (i <= 100); System.out.println("Sum = " + sum); } }运行结果为:
Sum = 5050
for循环语句
for 循环语句是应用最广泛、功能最强的一种循环结构,一般用于已知循环次数的情况下。for 循环语句的特点是先判断后执行,循环体的执行次数大于或等于 0,当条件表达式的值为 true 时执行。
for 循环语句的语法格式如下:
for([初始化表达式];[条件表达式];[迭代表达式]){ 循环体 }上述语句的执行顺序如下:
- 执行初始化表达式,它的作用是初始化循环变量和其他变量。初始化表达式在整个循环过程中仅执行一次。
- 执行条件表达式。如果条件表达式的值为 true,那么执行一次循环体;如果条件表达式的值为 false,那么跳出循环。
- 每次循环体执行完成后,会执行一次迭代表达式。
for 循环语句的流程图如下:
图 3 for循环语句的流程图
【实例】使用 for 循环语句改写前面的 do while 实例。
public class Test { public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; } System.out.println(sum); } }运行结果为:
5050
需要注意的是,初始化表达式、条件表达式及迭代表达式都可以省略,但分号不能省略,当三者都省略时循环会一直执行,即出现死循环。循环语句的选择
通过对循环语句的学习,读者现在可以使用 3 种流程控制语句来实现循环结构。接下来要思考的问题是,如何结合特定的场景进行选择。for 循环语句和 while 循环语句在执行循环体之前测试循环条件,属于当型循环,循环体可能一次都不执行。
do while 循环语句在执行循环体之后测试循环条件,属于直到型循环,至少执行一次循环体。
for 循环语句更适合用于明确知道循环次数的场景。
while 循环语句和 do while 循环语句更适合用于循环次数不明确,以及当某个条件改变时再结束循环的场景。