嵌套for循环的基础直角三角形——四个方向打印

简介: 嵌套for循环的基础直角三角形——四个方向打印

嵌套循环是一个很重要的循环格式。特别是对于后期的数组,排序,链表等等内容都有着直接的关系,所以这里必须要学明白,我们使用打印型号的方式来练习它。一定要熟练掌握。



外层i与内容j控制的轴向

public static void main(String[] args) {
        int size = 5;
        // 外层循环控制行
        for (int i = 0; i < size; i++) {
            // 内层循环控制列
            for (int j = 0; j < size; j++) {
                System.out.print("y轴* "+j);
            }
            System.out.println("x轴"+i); // 换行
        }
    }

效果:

可以看到X轴控制的是行数,Y轴控制的是列数。

这里可以理解成一个二维矩阵,矩阵就是:

在数学中,矩阵是一个按照长方阵列排列的复数或实数集合,其最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。矩阵是高等代数学中的常见工具,也常见于统计分析等应用数学学科中。在物理学中,矩阵于电路学、力学、光学和量子物理中都有应用;计算机科学中,三维动画制作也需要用到矩阵。 矩阵的运算是数值分析领域的重要问题。将矩阵分解为简单矩阵的组合可以在理论和实际应用上简化矩阵的运算。对一些应用广泛而形式特殊的矩阵,例如稀疏矩阵和准对角矩阵,有特定的快速运算算法。

1、打印5x5星号矩阵

public static void main(String[] args) {
        int size = 5;
        // 外层循环控制行
        for (int i = 0; i < size; i++) {
            // 内层循环控制列
            for (int j = 0; j < size; j++) {
                System.out.print("* ");
            }
            System.out.println(); // 换行
        }
    }

二维矩阵的星号效果:

2、打印左下角直角三角形

这里需要控制内容的【j】来处理列的输出个数。

public static void main(String[] args) {
        int size = 5;
        // 外层循环控制行
        for (int i = 0; i < size; i++) {
            // 内层循环控制列
            for (int j = 0; j <= i; j++) {
                System.out.print("* ");
            }
            System.out.println(); // 换行
        }
    }

 

3、打印左上角直角三角形

public static void main(String[] args) {
        int size = 5;
        // 外层循环控制行
        for (int i = 0; i < size; i++) {
            // 内层循环控制列
            for (int j = size; j > i; j--) {
                System.out.print("* ");
            }
            System.out.println(); // 换行
        }
}

4、打印右上角直角三角形

右上角的直角三角形需要单独的使用一个内循环用来打补丁,我们可以看到右上角打印的话每一行需要递增一个,也就是正序,直接添加一个正序输出的空格即可。

public static void main(String[] args) {
        int size = 5;
        // 外层循环控制行
        for (int i = 0; i < size; i++) {
            for(int j = 0; j<i; j++){
                System.out.print("  ");
            }
            // 内层循环控制列
            for (int j = size; j > i; j--) {
                System.out.print("* ");
            }
            System.out.println(); // 换行
        }
    }

5、打印右下角的三角形

打印右下角的三角形需要再最初的时候就要打印空格来占位,占位的顺序是4/3/2/1,所以肯定是倒序输出。

public static void main(String[] args) {
        int size = 5;
        // 外层循环控制行
        for (int i = 0; i < size; i++) {
            for(int j = size-1; j > i; j--){
                System.out.print("  ");
            }
            // 内层循环控制列
            for (int j = 0; j <= i; j++) {
                System.out.print("* ");
            }
            System.out.println(); // 换行
        }
    }

最后我们可以看到右下角直角。

6、菱形打印

在右上角和右下角的代码补丁中将2个空格替换成一个空格即可。

public static void main(String[] args) {
        int size = 5;
        // 外层循环控制行
        for (int i = 0; i < size; i++) {
            for(int j = size-1; j > i; j--){
                System.out.print(" ");
            }
            // 内层循环控制列
            for (int j = 0; j <= i; j++) {
                System.out.print("* ");
            }
            System.out.println(); // 换行
        }
                // 外层循环控制行
        for (int i = 0; i < size; i++) {
            for(int j = 0; j<i; j++){
                System.out.print(" ");
            }
            // 内层循环控制列
            for (int j = size; j > i; j--) {
                System.out.print("* ");
            }
            System.out.println(); // 换行
        }
    }

效果:

大型菱形15x15

总结

学习Java的for循环嵌套是非常必要的,因为它可以帮助我们更有效地处理多维数据结构,比如二维数组、三维数组等。这种嵌套循环结构允许我们在每个维度上遍历数据元素,并对每个元素执行特定的操作。下面列举一些for循环嵌套学习的必要性:

  1. 提高编程技能:掌握for循环嵌套可以让我们编写出更复杂的程序,实现更高级的功能。这是提高编程技能的一个重要步骤。
  2. 处理多维数据结构:在实际编程中,我们经常需要处理多维数据结构,比如图像处理中的像素矩阵、游戏中的二维地图等。通过for循环嵌套,我们可以方便地遍历这些数据结构中的每个元素,进行各种操作。
  3. 优化算法性能:通过合理使用for循环嵌套,我们可以优化算法的性能。例如,在排序、搜索等算法中,使用嵌套循环可以降低时间复杂度,提高程序的执行效率。
  4. 解决实际问题:许多实际问题需要用到for循环嵌套来解决,比如打印乘法口诀表、生成杨辉三角等。掌握for循环嵌套可以帮助我们更好地解决这类问题。
  5. 增强逻辑思维能力:学习for循环嵌套需要理解循环的嵌套关系和执行顺序,这有助于增强我们的逻辑思维能力和空间想象力。

总之,学习Java的for循环嵌套是非常有必要的,它可以帮助我们提高编程技能、处理多维数据结构、优化算法性能、解决实际问题以及增强逻辑思维能力。

相关文章
|
Python
Python基础(输出五行五角星,数量每行递增/输出九九乘法表)
需求:在控制台连续输出五行*, 每一行星星的数量依次递增 思路:使用while循环输出五行内容, 依次输出数字1到5, 再使用数字乘以字符串'*', 即可在每行输出一个星星, 两个星星, ... 五个星星, 从而实现递增
815 1
Python基础(输出五行五角星,数量每行递增/输出九九乘法表)
|
7月前
|
算法
循环嵌套思路详解 | 一个“在盒子里过家家”的算法 -- 以冒泡排序与打印菱形为例(一)
本文介绍了编程中的一种思想,通过菱形打印问题来阐述如何理解和使用循环嵌套。文章提到,初学者在面对循环结构时,可以通过先识别代码块的结束括号来理解整体结构,提高阅读效率。作者提出了“在盒子里过家家”的理解思路,将外层循环看作一个个盒子,内层循环视为盒子里的操作,弱化循环嵌套的概念,强调以盒子为单位思考问题。此外,文章还通过示例解释了内外循环的关系,帮助读者更好地理解循环控制和执行过程。
114 3
|
7月前
|
算法
循环嵌套思路详解 | 一个“在盒子里过家家”的算法 -- 以冒泡排序与打印菱形为例(二)
本文介绍了如何运用特定思路解析和解决编程问题,特别是涉及双层循环的情况。首先,通过一个打印特定图案的例子,解释了将“盒子”作为思考单位的概念,即分析问题中每个循环的作用和内容。接着,以冒泡排序为例,展示了如何将问题分解为外层循环(趟数)和内层循环(每趟的比较与交换),并通过盒子思路简化理解和实现代码。最后,提到了菱形打印的代码优化,鼓励读者思考并应用这种思维方式。总的来说,文章强调了自然地理解和运用循环结构,而不是机械地记忆。
79 2
|
7月前
|
存储 机器学习/深度学习 人工智能
嵌套for循环的九九乘法表——四个方向打印
嵌套for循环的九九乘法表——四个方向打印
155 0
|
C语言
乘法口诀标的打印及解释
打印乘法口诀表可以说是c语言中一个很经典的一个简单程序了。 打印乘法口诀表的第一反应可能会是很难,怎么打印出这么多相乘的数呢。但是仔细想分析和考虑的话,其实很简单。那么我来说一下打印乘法口诀表的思路。
92 0
|
C++
C/C++两个内外for循环输出菱形
C/C++两个内外for循环输出菱形
82 0
|
开发者 Python
嵌套打印矩形 | 学习笔记
快速学习 嵌套打印矩形
170 0
嵌套打印矩形 | 学习笔记
(C语言)玩转for循环(利用for循环打印多种图形)利用指针操作数组以及多组输入去最大最小值之后求其平均值
(C语言)玩转for循环(利用for循环打印多种图形)利用指针操作数组以及多组输入去最大最小值之后求其平均值