多重循环

前面说过了循环,多重循环单独拿出来是因为他有很多独特的地方,要多注意一下,当然也是更复杂一点。

首先所谓多重循环,其实就是多个相同或者不同的循环的嵌套,即在一个循环中再构建一个循环。在说循环之前,先来说跳出循环的关键词:

continue: 继续的意思,在循环执行过程中遇到continue时就会跳过本次循环,在他下面的语句块在本次循环中是不会执行了。直接进入下一次循环。

break: 和continue类似,break也是会停止本次循环,但break跳出的会更多,他是直接停止了这个循环,跳出这个循环,在程序执行到break的时候,这个循环就不会在执行下去,是直接结束循环。在分支结构中break常用于switch语句。

(还有就是整个循环都执行完毕,循环条件不成立的时候,很多地方其实就是省略了continue语句。)

在多重循环中continue和break的跳转语句是很重要的,好好运用会起到关键的作用。

下面来介绍一下多重循环的用法。

1、找出三位数中的水仙花数

//外层循环限制取值范围
    double sum;
    for (int i = 100, j; i <= 999; i++) {	
    //三位数,限制循环范围
        j = i;
        sum = 0;
        //内层循环完成各位数的立方和
        while (j >= 1) {
        //水仙花数是各位数的立方和等于本身
        //这里是运用循环将各位数的数单独取出求立方
            sum += Math.pow(j % 10, 3);
            //降位,下一循环取个位上的数
            j /= 10;	
        }
        if (sum == i) {
            System.out.println(i);
        }
    }

2、输出500以内的所有质素

//外层循环控制1~500
    for (int i = 2; i <= 500; i++) {
        //证明
        count2++;
        boolean is = true;
     for (int j = 2; j <= Math.sqrt(i); j++) {
        //数学中,比较小于其自身开根之后的值,
        //如果都不能除尽就说明其自身是质数
            count2++;
            if (i % j == 0) {
                is = false;
                break;
            }
        //这里找到第一个可以除尽的数就说明不是质数
   //所以就可以用break退出这个循环,进入外部的循环
          //继续判断下一个数
        }
        if (is) {
            count++;
            System.out.println(i);
        }
    }

以上,我们可以看出:多重循环是由多个循环语句嵌套的,在用到continue和break的时候就要考虑是在内层循环还是外层循环。
外层循环:break和continue执行的功能和上面说的一样。
内层循环:continue没什么变化,跳出本次循环,继续下一次的循环。break则是跳出了内层循环,直接执行外层的循环。如果外层再有个break,则说明整个多重循环都会结束。