前面已经介绍了嵌套循环的概念,并通过示例介绍了while循环和do-while循环嵌套的情况。本节介绍for循环结构,for循环也可以嵌套。不仅如此,for循环还可以和其它的循环结构混合嵌套。
嵌套循环时,必须将被嵌套的循环语句完整地包含在外层循环的循环体内,下面给出一些循环嵌套的示例。
示例1:用“*”输出一个菱形图案,图案如下:
在D盘Java目录下,新建“ForSample1.java”文件。用记事本打开“ForSample1.java”文件,输入以下代码:
代码结构分析
程序功能主要是演示for嵌套循环的使用方法。
程序分为两部分循环,第一部分循环输出菱形图案的上边四行,最外层循环控制输出的行数,内层嵌套了两个for循环,第一个嵌套循环输出打印的空格数,第二个嵌套循环输出打印的星号数;第二部分循环输出菱形图案的下边三行,原理和第一部分循环相同。
编译“ForSample1.java”文件,在命令行窗口输入“javac ForSample1.java”并执行命令,编译通过后,在命令行窗口输入“java ForSample1”运行Java程序,命令行窗口显示如下信息:
图 8-15 示例1菱形图案输出结果
示例2:打印输出100至200之间的全部素数。
提示:素数是指能被1和它本身整除的数。算法比较简单,先将这个数被2除,如果能整除,且该数又不等于2,则该数不是素数。如果该数不能被2整除,再看是否能被3整除,并且该数不等于3,则该数不是素数,否则再判断是否能被4整除,依次类推,该数只要是能被小于其本身的某个数整除时,就不是素数。
在D盘Java目录下,新建“ForSample2.java”文件。用记事本打开“ForSample2.java”文件,输入以下代码:
代码结构分析
程序功能主要是演示for与while混合嵌套循环的使用方法。
程序外层循环控制输出100至200之间的数,内层的while循环用于找寻从2到该数之间第一个能被整除的数,内层循环判断条件为i%j != 0,其中i为当前要判断是否是素数的数,j为从2开始循环递增的数,如果i%j != 0,则说明i不能被j整除,j自增后程序继续执行while循环,如果i%j == 0,则说明i能被j整除,程序跳出while循环,循环后面的if语句判断i与j是否相等,如果相等,则说明i为素数,程序输出i。
编译“ForSample2.java”文件,在命令行窗口输入“javac ForSample2.java”并执行命令,编译通过后,在命令行窗口输入“java ForSample2”运行Java程序,命令行窗口显示如下信息:
■ 知识点拨
循环嵌套是指在一个循环语句中再定义一个循环语句的语法结构。while、do- while和for循环语句都可以进行嵌套,并且他们之间可以进行互相嵌套。最常见的是在for循环中嵌套for循环。
■ 思考与练习
(1)编写一个程序,要求用for嵌套循环求100以内的奇数和。
(2)编写一个程序,要求用for嵌套循环输出九九乘法表。