【精致Java教程】20:流程控制(二):循环结构

循环结构就是在满足某个条件的情况下,重复循环某块代码,被循环的代码称为循环体。


【精致Java教程】20:流程控制(二):循环结构_第1张图片

while循环##

最简单的循环,先判断循环条件是否为true,为true则执行循环体直到为false。
下面的代码是把0循环+1直到等于10。

示例代码:

int i = 0;
while (i < 10) {
    i++;
    System.out.println("i = " + i);
}

运行结果:


i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
i = 10

do - while循环##

先执行一次循环体,然后判断循环条件是否为true,为true则再次执行循环体直到为false。
下面代码是首先随机产生一个1到10的整数,如果该整数不为10就再次随机产生一个1到10的整数直到产生的数等于10。

示例代码:

int i= 0;
do {
    i = (int) (Math.random() * 10) + 1; // (Math.random() * 10)可以产生一个1到9的随机浮点数,+1产生一个1~10的随机浮点数
    System.out.println("i = " + i);
} while (i != 10);

运行结果:


i = 9
i = 4
i = 3
i = 8
i = 9
i = 10

for循环##

while循环和do - while循环已经可以实现程序里的所有循环。不过Java还提供一种for循环,它比while和do - while比结构更清晰。for循环是最常用的循环结构,其使用频率N倍于前两种循环。其语法是:

for (初始化; 循环条件; 迭代语句) {
循环体;
}

下面的代码是用for循环输出1到10

示例代码:

for (int i = 1; i <= 10; i++) {
    System.out.println(i);
}

运行结果:


1
2
3
4
5
6
7
8
9
10

这里说一下,括号里的初始化,循环条件、和迭代语句都是可以为空的。
例如把上面的代码写成这样:

int;
for (; i <= 10; ) {
    i++;
    System.out.println(i);
}

把初始化和迭代部分抽出来放到别的地方是可以的,但是这样结构就很不清晰了。另外我没有把循环条件i <= 10删掉,因为删掉的话默认为true就变成无限循环了。

顺便说下,在Notepad++如果运行出现无限循环继续按F6,然后点击Terminate终止程序即可。


【精致Java教程】20:流程控制(二):循环结构_第2张图片

break##

和switch用break跳出代码块一样。循环结构里也可以用break跳出循环体。

示例代码:

for (int i = 1; i <= 10; i++) {
    if (i > 5) {
        break; // 跳出循环体,循环结束
    }
    System.out.println(i);
}

运行结果:


1
2
3
4
5

从运行结果可以看出,当i大于5时,执行了break,跳出了循环体,循环结束。

continue#

continue可以跳出当前循环进入下一次迭代而不再执行循环体剩余的代码。

示例代码:

for (int i = 1; i <= 10; i++) {
    if (i % 2 == 0) { // 判断i是否为奇数
        continue; // 跳出当前循环进入下一次迭代,循环还在继续
    }
    System.out.println(i);
}

运行结果:


1
3
5
7
9

从运行结果可以看出,当i为偶数时,就会执行continue。结束本次循环但是循环并没有结束只是进入下一次迭代,也就是不再执行本次循环剩余的输出语句,结果是只输出所有奇数。

本文代码下载:百度网盘

你可能感兴趣的:(【精致Java教程】20:流程控制(二):循环结构)