几种循环语句

1.循环语句while

while循环语句和选择结构if语句有些相似,都是根据条件判断来决定是否执行大括号内的执行语句。区别在于,while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环结束。while循环语句的语法结构如下:

while(循环条件){

执行语句

………

}

在上面的语法结构中,{}中的执行语句被称作循环体,循环体是否执行取决于循环条件。当循环条件为true时,循环体就会执行。循环体执行完毕时会继续判断循环条件,如条件仍为true则会继续执行,直到循环条件为false时,整个循环过程才会结束。

while循环的执行流程如下图所示

接下来通过一段代码,来实现打印1~4之间的自然数,WhileDemo.java

public class WhileDemo {

    public static void main(String[] args) {

        int x = 1; // 定义变量x,初始值为1

        while (x <= 4) { // 循环条件

            System.out.println("x = " + x); // 条件成立,打印x的值

            x++; // x进行自增

        }

    }

}

运行结果如下图所示。

 

在上述代码中,x初始值为1,在满足循环条件x <= 4的情况下,循环体会重复执行,打印x的值并让x进行自增。因此打印结果中x的值分别为1、2、3、4。

大家要注意的是,代码x++用于在每次循环时改变变量x的值,从而达到最终改变循环条件的目的。如果没有这行代码,整个循环会进入无限循环的状态,永远不会结束。

2.循环语句for

for循环语句是最常用的循环语句,一般用在循环次数已知的情况下。for循环语句的语法格式如下:

for(初始化表达式; 循环条件; 操作表达式){

    执行语句

    ………

}

在上面的语法结构中,for关键字后面()中包括了三部分内容:初始化表达式、循环条件和操作表达式,它们之间用“;”分隔,{}中的执行语句为循环体。

接下来分别用①表示初始化表达式、②表示循环条件、③表示操作表达式、④表示循环体,通过序号来具体分析for循环的执行流程。具体如下:

for(① ; ② ; ③){

    ④

}

第一步,执行①

第二步,执行②,如果判断结果为true,执行第三步,如果判断结果为false,执行第五步

第三步,执行④

第四步,执行③,然后重复执行第二步

第五步,退出循环

接下来通过一个案例对自然数1~4进行求和,如下所示。ForDemo01.java

public class ForDemo01 {

    public static void main(String[] args) {

        int sum = 0; // 定义变量sum,用于记住累加的和

        for (int i = 1; i <= 4; i++) { // i的值会在1~4之间变化

            sum += i; // 实现sum与i的累加

        }

        System.out.println("sum = " + sum); // 打印累加的和

    }

}

运行结果如下图所示。

上述代码中,变量i的初始值为1,在判断条件i<=4为true的情况下,会执行循环体sum+=i,执行完毕后,会执行操作表达式i++,i的值变为2,然后继续进行条件判断,开始下一次循环,直到i=5时,条件i<=4为false,结束循环,执行for循环后面的代码,打印“sum=10”。

为了让初学者能熟悉整个for循环的执行过程,现将上述代码运行期间每次循环中变量sum和i的值通过表2-11罗列出来。

表2-1            sum和i循环中的值

循环次数

sum

i

第一次

1

1

第二次

3

2

第三次

6

3

第四次

10

4

3.循环语句do…while

do…while循环语句和while循环语句功能类似,其语法结构如下:

do {

执行语句

………

} while(循环条件);

在上面的语法结构中,关键字do后面{}中的执行语句是循环体。do…while循环语句将循环条件放在了循环体的后面。这也就意味着,循环体会无条件执行一次,然后再根据循环条件来决定是否继续执行。

do…while循环的执行流程如下图所示。

接下来使用do…while循环语句来实现打印1~4之间的自然数DoWhileDemo.java。

public class DoWhileDemo {

    public static void main(String[] args) {

        int x = 1; // 定义变量x,初始值为1

        do {

            System.out.println("x = " + x); // 打印x的值

            x++; // 将x的值自增

        } while (x <= 4); // 循环条件

    }

}

运行结果如下图所示。

 

我们发现WhileDemo.java与DoWhileDemo.java运行的结果一致,这说明什么呢?这说明do …while循环和while循环能实现同样的功能。然而在程序运行过程中,这两种语句还是有差别的。如果循环条件在循环语句开始时就不成立,那么while循环的循环体一次都不会执行,而do…while循环的循环体还是会执行一次。若将DoWhileDemo.java中的循环条件x<=4改为x < 1,DoWhileDemo.java运行结果会打印x=1,而WhileDemo.java运行结果什么也不会打印。

posted @ 2019-01-10 12:00  G大调  阅读(4457)  评论(0编辑  收藏  举报