Java循环控制语句
循环语句的作用是反复执行一段程序代码,直到满足终止条件为止。Java语言提供的循环语句有while语句,do-while语句和for语句。这些循环语句各有其特点,开发人员可根据不同的需要选择使用。本篇博文将主要介绍以上语句的使用方法进行详细的描述。
while语句
while语句的一般格式为:
while(布尔表达式)
{
循环体语句块
}
while语句中各个成分的执行次序是:先判断布尔表达式的值,若值为假,则跳过循环体,执行循环体后面的语句;若布尔表达式的值为true,则执行循环体中的语句块,然后回去判断布尔表达式的值;如此反复,直到布尔表达式的值为false,跳出while循环体为止。其执行流程如图所示:
示例:
public class WhileDemo{
public static void main(String[] args){
int count = 1; //循环变量及其初始值
while(count <= 5){ //循环条件
System.out.println("count = " + count);
count++; //循环变量自增
}
}
}
do-while语句
do-while语句的一般格式为:
do{
循环体语句块
}while(布尔表达式)
do-while语句中各个成分的执行次序是:先执行一次循环体语句块,然后再判断布尔表达式的值,若值为false,则跳出do-while循环,执行后面的语句;若值为true,则再次执行循环体语句块。如此反复,知道布尔表达式的值为false,跳出循环为止。其执行流程如图所示:
示例:
public class DoWhileDemo{
public static void main(String[] args){
int num = 0; //循环变量及其初值
do{
System.out.println(num);
num++; //循环变量自增
}while(num < 5) //循环条件
}
}
do-while循环语句与while循环语句的区别在于do-while循环中的循环体至少执行一次,而while循环中的循环体可能一次都不执行。
for语句
for语句一般格式为:
for(循环变量初始化;循环条件;循环过程表达式)
{
循环体程序语句块;
}
其中:“循环变量初始化”指对循环变量赋初值;“循环条件”用来判断循环是否继续进行;“循环过程表达式”完成修改循环变量,改变循环条件的任务。
for语句执行过程:
1.循环变量初始化。
2.求解布尔表达式,若值为true,则执行循环体中的语句块,然后执行第3步;若值为false则跳出循环。
3.执行循环过程表达式,然后转去执行第2步。
其执行流程如图所示:
示例:
public class ForDemo{
public static void main(String[] args){
int sum = 0;
for(int i = 1;i <= 100;i++){
sum += i;
}
System.out.println("sum = "+ sum);
}
}
注意:在for语句中,for头(括号里的三个表达式),均可省略,但两个分号不可以省略。当省略了任何一个表达式时,应该将其写在程序中的其他位置,否则可能会导致“死循环”等问题。如果不是万不得已,尽量不要使用省略的表达形式,使用省略表达式的写法会导致程序可读性降低,影响代码整体质量。请记住:良好的编程习惯才能写出优秀的代码。
关于JDK1.5新补充的for语法,将在日后的博文中进行详细讲解。
循环语句比较
前面通过了示例程序讲述了三种循环语句的用法。一般情况下,Java系统提供的三种循环语句是可以相互替代的,尤其是对于那些确切的知道所需执行次数的循环。然而,由于for语句头中包含了控制循环所需要的各个构件,因此,对于同样的问题,使用for语句写的程序更加简洁清晰。如果要求1~100之和的问题分别用三种循环结构写出,就可以清楚地看到这一事实。对于那些只知道某些语句要反复执行多次(至少一次),但不知道确切的执行次数的问题,使用do-while循环会更加方便。对于那些某些语句可能要反复执行多次,也可能一次都不执行的问题,使用while循环就是最合适的了。