繁体   English   中英

在 Java 中打印简单模式

[英]Printing Simple Patterns in Java

有人能解释一下用 Java 打印简单模式背后的基础知识吗?

我举一个具体的例子。

我只是希望有人澄清每条线路在做什么,以便我更好地了解这是如何工作的。 任何其他解释的示例(逐行)也将不胜感激!

public static void drawPyramidPattern() {
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 5 - i; j++) {
            System.out.print(" ");
        }
        for (int k = 0; k <= i; k++) {
            System.out.print("* ");
        }
        System.out.println();
    }
}

通过循环打印任何或所有内容只是为了理解执行流程。 在你的代码中,如果你开始一行一行地观察流程,你就会知道它是如何工作的。

如果您了解它的工作原理,您将能够打印任何图案,但基础知识应该很清楚。 尝试在每次迭代后打印变量 i、j 和 k 值。 查看在每个执行周期后如何更改的值,然后查看您应用的逻辑。

您的问题范围有点广泛,除非缩小范围,否则无法准确回答。 我建议一行一行地运行并观察输出,即使没有任何意义也尝试更多更改,即使对于未来的所有任务,您也会对循环有很好的理解。 如果在尝试自己之后遇到任何问题,请在此处分享,人们已准备好解决它们。 :)

希望这可以帮助。

首先,您必须完全了解循环、嵌套循环,然后才能进行模式设计。

1)首先以硬形式运行循环,如在注册/页面上理解循环。
2) 使用调试器识别循环进度。

如果从数学的角度考虑,循环只是函数。

单个 for 循环就是 x。

例子

for (int i = 0; i < 5; i++) {
System.out.println("This is function x.");
}

但是,当您开始嵌套循环时,因为它具有更大的功能。 另一个 for 循环内的 for 循环将是一个函数 x^2

例如:

for (int i = 0; i < 5; i++) {
     for (int j = 0; J < 5; j++){
     System.out.println("This is the j loop");
     }
     System.out.println("This is the i loop");
}

这背后的原因是,为了完成 i 的第一次迭代,必须完成循环内的所有内容。 但是, i 循环内部有另一个循环,因此必须先完成它。 所以带有 j 的循环必须执行直到它完成。 (在这种情况下是 5 次),太好了,现在我们可以增加 i。 但是现在我们必须再次通过 j! 这个过程一直持续到 i 达到它的阈值 < 5。所以输出看起来像这样

Output:
This is the j loop
This is the j loop
This is the j loop
This is the j loop
This is the j loop
This is the i loop
This is the j loop
This is the j loop
....

这将一直持续到 i 达到 5,在这种情况下,它不再满足必要的 i < 5,并且循环将结束。 希望这会有所帮助

首先,由于 i = 0 & 0<5 为真,因此您进入第一个(外部)for 循环。

记住 i = 0。

则 j = 0; 但是 0 < i = 0 是假的,所以你不要进入第二个循环。

对于第三个循环,k = 0 & 0<=0 为真。 所以你进入循环并执行打印语句,即打印一个星号。

k++,这会将 k 增加 1 并检查布尔值; 你问自己是 1 <= 0; 显然没有; 所以你退出 for 循环,然后到达 println 语句,它将带你到下一行。

然后你回到外循环。

//如果矩阵为 1 2 3 4 5 6 7 8 9 则此代码打印对角线模式输出为:1 4 2 7 5 3 8 6 9

import java.util.*;
class DiagonalPattern
{
    public static void main(String args[])
    {
        Scanner sc=new Scanner(System.in);
        int x[][];
        int i,j,row,col,p,temp=1,last=0;
        System.out.println("how many array wants to create and size of array");
        row=sc.nextInt();
        col=sc.nextInt();
        x=new int[row][col];
        System.out.println("Enter  " +row*col+ "  elements of array of array");
            for(i=0;i<row;i++)
            {
            for(j=0;j<col;j++)
            {
                x[i][j]=sc.nextInt();
                last=j;
            }
            }
        for(i=0;i<row;i++)
            {
            System.out.println("");
            int k=i;
            for(j=0;j<=i;j++,k--)
            {
                if(j==col)
                {
                    break;
                }
                else
                {
                    System.out.print(x[k][j]);  
                System.out.print(" ");
                }
            }
            }
        for(p=x.length;p>0;p--,temp++)
            {
            System.out.println("");
            i=x.length-1;
            int k=i;
            for(j=temp;j<=last;j++,k--)
            {
                System.out.print(x[k][j]);  
                System.out.print(" ");
            }
            }   
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM