Logo

郎哥编程

for嵌套循环结构

2019-12-09 1067

前面已经介绍了嵌套循环的概念,并通过示例介绍了while循环和do-while循环嵌套的情况。本课介绍for嵌套循环结构,for循环也可以嵌套。不仅如此,for循环还可以和其它的循环结构混合嵌套。

嵌套循环时,必须将被嵌套的循环语句完整地包含在外层循环的循环体内,下面给出一些嵌套循环的示例。

案例1:用“*”输出一个菱形图案,图案如下:

image.png                                             

在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循环,第一个嵌套循环输出打印的空格数,第二个嵌套循环输出打印的星号数;第二部分循环输出菱形图案的下边三行,原理和第一部分循环相同。

程序执行结果如下图所示:

image.png

案例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。

程序执行结果如下图所示:

image.png

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


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论