【相关链接】

上一篇:小白学Java 第11课:switch 多分支语句

下一篇:小白学Java 第13课:while 循环

总纲:返回列表

 

从这一节开始,我们开始讲循环,Java程序中常见的循环有 for 循环,while 循环,do while循环,foreach 循环 等。

我们先从最简单的 for 循环开始说起。

【1】什么是循环?

看到这个小标题,肯定大多朋友都在偷笑,循环不就是反反复复的做一件事么?是的!这就是循环的定义。

比如:小张清晨在操场跑步,假设小张每天跑10圈,那么他跑完需要循环操场跑10圈。如果小张每2圈喝水一次,那么小张需要喝水5次。

 

【2】for 循环结构

for 循环的结构如下所示:

for(初始变量;循环完成条件;步伐大小) {
    // 每次循环要做的事
}

下面我分别解释每个名次条件:

初始变量:简单的说循环就是从多少开始算起,上面小张每天从第1圈跑到第10圈,所以初始变量值就是1。假设我们给第几圈这个变量取名为x,那么这里就应该为 int x = 1;

循环完成条件:循环往往会有一个最大循环次数,比如这里小张跑10圈,那么这个10就是小张的循环完成条件,所以当 x 小于或者等于10的时候,小张才会继续跑步,当跑到11圈的时候,小张就会停止跑步,因为他每天只跑10圈。

步伐大小:小张跑完第1圈,就接着跑第2圈,接着第3圈,......., 两次挨着的圈序列只相差1,这里的1就是跑步圈数步伐,小张每2圈喝一次水,那么第1圈喝了的话第3圈才会喝,第3圈喝了的话第5圈才会喝,......,没喝一次水,需要2圈,那么这里步伐就是2。当步伐为1的时候,需要循环10次,当步伐为2的时候,循环只需要5次。可见,当步伐越大,循环次数越少。

每次循环要做的事:这个就很好理解了,小张每圈就做了2件事。第一件是跑步,这一件事是每圈都在做。第二件事是喝水,这个是每2圈做一次。

 

【3】具体实现

(3.1)小张跑步

假设我们以小张跑步这件事来实现,那么他的相关代码就如下:

for(int x = 1; x <= 10; x++) {
    System.out.println("第 " + x +" 圈跑完了");
}

新建类 Test12,我们将这段代码运行下试试:

Java 新循环和 java基础循环_Java

可以看到,程序执行完,小张10圈已经跑完了,大家可以根据代码对照下上面的 for 循环结构式对比下,加深理解。

(3.2)小张喝水

上面的是跑步事件,那么小张喝水该怎么用程序来表示呢?

具体如下:

for (int x = 1; x <= 10; x = x + 2) {
    System.out.println("第 " + x + " 圈喝水");
}

程序执行后,校长一共只喝了5次水,所以只循环了5次,因为喝水的步伐两次之间的间隔为了2。

Java 新循环和 java基础循环_Java 新循环和_02

【4】死循环

(4.1)什么是死循环

所谓死循环,就是程序一直循环下去,逻辑上没有终止条件。在 for 循环中,如果取消中间的条件不写,那么就是一个死循环。

Java 新循环和 java基础循环_Java 新循环和_03

可以看到,程序的执行速度是非常快的,1秒内都执行了几十万次循环,死循环他并不会停止,并且他将会一直执行下去。

(4.2)死循环慎用

从逻辑上来说,死循环是可以一直执行下去的?

但在实际工作中,如果程序中出现了死循环,大多是有问题的,也经常是不被允许的,因为他会无效的消耗计算机的资源,最后导致计算机崩溃。所以在写死循环的时候,要慎之又慎,如果确实有这种需求,也要反复进行测试。或者在死循环中思考是不是可以减少其频率,比如每几分钟执行1次,不然不间断的每秒执行几十万次这是非常可怕的。

【5】多重循环

上面我们将的都是一个 for 循环,当 for 循环里面再套一个 for 循环的时候,这两个for循环凑在一起就叫做【双重循环】,

将设我们将一个循环简记为如下:

for () {

}

那么双重循环的简单结构就是如下所示: 其中我们称里面的for循环为内循环,外面这个为外循环。

for () {
    for() {
    }
}

假设小明平均一个月跑步30天,那么小明平均每个月需要跑步多少圈呢?我们就可以用双重循环如下表示:

设小明每天跑步的圈数为 x,小明每个月的天数为 y,那么就可以如下表示:

for (int y = 1; y <= 30  ; y ++) {
    for (int x = 1; x <= 10  ; x ++) {
        System.out.println("小明跑步,第" + y + "天第" + x +"圈");
    }
}

我们将代码执行下看看:可以看到,小明每天每圈的跑步都被循环记录了下来。

Java 新循环和 java基础循环_死循环_04

当继续往最小的循环里嵌套,形成三个for循环嵌套时候,这时候就成了【三重循环】,

结构如下:

for() {
    for() {
        for() {
        }
    }
}

比如小明一年跑12个月,那么就可以通过三重循环求出小明一年的跑步记录。

以此推之,四重循环,五重循环,........

循环越多,代码结构越复杂,代码的可读性也会越来越差,所以如果出现了3重循环以上,应该可以考虑是否可以优化代码或者换个思维。