第五篇 :《据说是:“当今社会最有前途!最值得学习的语言!”》让我们来了解一下这是什么样的一种语言!

多重循环(多重/多层/嵌套循环)

1. 掌握多重循环的使用

第五篇 :《据说是:“当今社会最有前途!最值得学习的语言!”》让我们来了解一下这是什么样的一种语言!

Java 循环语句之多重循环

循环体中包含循环语句的结构称为多重循环。三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环。在二重循环中,外层循环每执行一次,内层循环要执行一圈。

如下所示:

第五篇 :《据说是:“当今社会最有前途!最值得学习的语言!”》让我们来了解一下这是什么样的一种语言!

接下来我们通过几个最简单的多重循环程序来深入理解多重循环的执行过程

➀、使用 * 打印长方形:
     第五篇 :《据说是:“当今社会最有前途!最值得学习的语言!”》让我们来了解一下这是什么样的一种语言!
  实现代码为:

System.out.println("打印长方形");

    // 外层循环控制行数
    for (int i = 1; i <= 3; i++) {

        // 内层循环控制每行的*号数
        for (int j = 1; j <= 8; j++) {

            System.out.print("*");
        }

        // 每打印完一行后进行换行
        System.out.println();
    }

执行流程:当 i = 1 时,外层循环条件成立,进入内层循环,开始打印第一行内容。此时, j 从 1 开始,循环 8 次,内层循环结束后换行,实现第一行 8 个 * 的输出。接下来返回外层循环 i 变为 2 ,准备打印下一行,依此类推,直到完成长方形的打印。

➁、使用 * 打印直角三角形:
 
  第五篇 :《据说是:“当今社会最有前途!最值得学习的语言!”》让我们来了解一下这是什么样的一种语言!

实现思路:上面的图形中,第 1 行有一个 * 号,第 2 行有两个 * 号,第 3 行有三个 * 号,所以可以使用二重循环来实现。其中,外层循环控制行数,内层循环控制每行的 * 号数。同时,我们发现一个规律,当打印每行信息时,内层循环变量的最大值和外层循环变量的值相等。

实现代码为:

System.out.println("打印直角三角形");

    // 外层循环控制行数
    for (int i = 1; i <= 3; i++) {

        // 内层循环控制每行的*号数
        // 内层循环变量的最大值和外层循环变量的值相等
        for (int j = 1; j <= i; j++) {

            System.out.print("*");
        }

        // 每打印完一行后进行换行
        System.out.println();
    }

➂、进阶——打印九九乘法表:

第五篇 :《据说是:“当今社会最有前途!最值得学习的语言!”》让我们来了解一下这是什么样的一种语言!

**实现思路:**观察九九乘法表的结构和直角三角形很相似,所以我们可以直接在上面的第二个例子里作文章,关键只要修改内嵌循环中打印的内容就可以了。如何修改就要仔细观察九九乘法表到底是如何实现的,它一共有九行,那么最外面的循环最大值也应该是9;然后我们观察每行的规律,不难得出,假设每行的每个算式为j*i,j从1开始递增,且j的最大值为它所在的行数(与外层循环次数相同),而i则是等于它所在的行数,那么我们把j这个变量设计为第二层循环嵌套的变量,使它的最大值等于外层i的变量的值。最后注意一下print函数输出的格式就可以了

实现代码:

    System.out.println("打印九九乘法表");

    // 外层循环控制行数,总共有9层
    for (int i = 1; i <= 9; i++) {
        // 内层循环控制每行的乘法算式
        // 内层循环变量的最大值和外层循环变量的值相等(相当于直角三角形)
        for (int j = 1; j <= i; j++) {

            System.out.print(j+"*"+i+"="+(j*i)+" ");
        }

        // 每打印完一行后进行换行
        System.out.println();
    }

2.掌握循环中的跳转语句使用

在刚接触的java中有两个跳转语句,分别是breakcontinue

break和continue的作用:

break和continue都是用来控制循环结构的,主要是停止循环。

break和continue的区别:

➀、break

有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止。

这是我们可以使用break来完成。break用于完全结束一个循环,跳出循环体执行循环后面的语句。

➁、continue

continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。

可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环。

3.掌握程序调试(debug/断点调试)

到达循环之后,程序不再是很直观就能推断出结果了!所以需要我们运行时慢慢查看,这时候我们就需要借助(debug/断点调试)进行程序调试了。

步骤以及方法:

①、添加断点(break point) -> 双击行号 / 右键添加

断点:你希望程序在哪行代码开始进行调试/暂停/中断执行

不要添加在注释行 或者 一些输入上 或者语法声明上(类声明、方法声明、循环、选择声明)!

②、右键debug as以调试形式运行 ,运行之后,程序会在断点处停止,此时这行代码处于将要执行还未执行的状态。

不要使用run as

③、可以按下F6(Step Over)执行当前行代码,并进入下一行

④、可以在一行一行调试的过程中,随时切换断点的位置!并且可以随时按下F8(Resume)快速放行到下一个断点,如果没有下一个断点,程序会直接运行至结束。

⑤、按下F5(Step Into),它可以进入方法内查看运行。

⑥、如果在调试过程中发现问题,随时可以中断进行修复解决。


作者:王攀
来源:北大青鸟Java课程J335班
时间:2019年3月26日