前面已经介绍了嵌套循环的概念,并通过示例介绍了while循环和do-while循环嵌套的情况。本课介绍for嵌套循环结构,for循环也可以嵌套。不仅如此,for循环还可以和其它的循环结构混合嵌套。
嵌套循环时,必须将被嵌套的循环语句完整地包含在外层循环的循环体内,下面给出一些嵌套循环的示例。
案例1:用“*”输出一个菱形图案,图案如下:
在PbaseUnit10项目unit包下创建ForSample1类。代码如下:
/**
* @Title: ForSample1.java
* @Package unit
* @Description: Java基础知识课程案例
* @author 编程训练营
* @date
* @version V1.0
*/
package unit;
/**
* @ClassName: ForSample1
* @Description: 流程控制(for循环嵌套结构)案例1
* @author 编程训练营
* @date
*
*/
public class ForSample1 {
/**
* @Title: main
* @Description: Java程序入口main方法
* @param @param args 参数
*
* @return void 返回类型
* @throws
*/
public static void main(String[] args) {
int i, j, k;
// 先打印上边的四行
for (i = 1; i <= 4; i++) {
// 控制要打印的空格数
for (j = 1; j <= 4 - i; j++)
System.out.print(" ");
// 控制要打印的星号数
for (k = 1; k <= 2 * i - 1; k++)
System.out.print("*");
System.out.print("\n");
}
// 打印下边的三行
for (i = 1; i <= 3; i++) {
// 控制要打印的空格数
for (j = 1; j <= i; j++)
System.out.print(" ");
// 控制要打印的星号数
for (k = 1; k <= 7 - 2 * i; k++)
System.out.print("*");
System.out.print("\n");
}
}
}程序结构分析
程序功能主要是演示for嵌套循环的使用方法。
程序分为两部分循环,第一部分循环输出菱形图案的上边四行,最外层循环控制输出的行数,内层嵌套了两个for循环,第一个嵌套循环输出打印的空格数,第二个嵌套循环输出打印的星号数;第二部分循环输出菱形图案的下边三行,原理和第一部分循环相同。
程序执行结果如下图所示:

案例2:打印输出100至200之间的全部素数。
提示:素数是指能被1和它本身整除的数。算法比较简单,先将这个数被2除,如果能整除,且该数又不等于2,则该数不是素数。如果该数不能被2整除,再看是否能被3整除,并且该数不等于3,则该数不是素数,否则再判断是否能被4整除,依次类推,该数只要是能被小于其本身的某个数整除时,就不是素数。
在PbaseUnit10项目unit包下创建ForSample2类。代码如下:
/**
* @Title: ForSample2.java
* @Package unit
* @Description: Java基础知识课程案例
* @author 编程训练营
* @date
* @version V1.0
*/
package unit;
/**
* @ClassName: ForSample2
* @Description: 流程控制(for循环嵌套结构)案例2
* @author 编程训练营
* @date
*
*/
public class ForSample2 {
/**
* @Title: main
* @Description: Java程序入口main方法
* @param @param args 参数
*
* @return void 返回类型
* @throws
*/
public static void main(String[] args) {
int i, j, n;
n = 0;
for (i = 100; i <= 200; i++) {
j = 2;
// 从2到i之间寻找第一个能被整除的数
while (i % j != 0)
j++;
// 如果第一个能被整除的数等于该数本身,则说明该数为素数
if (i == j) {
System.out.printf("%4d", i);
n++;
// 控制每行输出8个素数
if (n % 8 == 0)
System.out.print("\n");
}
}
System.out.print("\n");
}
}程序结构分析
程序功能主要是演示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。
程序执行结果如下图所示:

嵌套循环是指在一个循环语句中再定义一个循环语句的语法结构。while、do- while和for循环语句都可以进行嵌套,并且他们之间可以进行互相嵌套。最常见的是在for循环中嵌套for循环。