有 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();
    }
}

共 (5) 个答案

  1. # 1 楼答案

    如果你从数学的角度考虑,循环就是函数

    一个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!这一过程一直持续到我达到它的存在门槛<;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,循环将结束。希望这能有所帮助

  2. # 2 楼答案

    首先,因为i=0&;0<;如果输入第一个(外部)for循环,则为true

    记住i=0

    那么j=0;但是0<;i=0为false,因此不进入第二个循环

    对于第三个循环,k=0&;0<=0是真的。因此,您进入循环并执行print语句,即打印星号

    k++,这将使k增加1并检查布尔值;你问自己是1<;=0; 显然没有;因此,退出for循环,然后到达println语句,它将引导您进入下一行

    然后你回到外环

  3. # 3 楼答案

    通过循环打印任何内容都只是为了了解执行流程。在您的代码中,如果您开始逐行观察流,您将了解它是如何工作的

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

    你的问题范围有点广,除非缩小范围,否则无法准确回答。我建议你一行一行地运行这个程序,观察输出结果,尝试更多的改变,即使它没有任何意义,你也会对循环有很好的理解,即使你将来的所有任务也是如此。如果你在尝试之后遇到了任何问题,请在这里分享,大家都准备好解决它们了。:)

    希望这有帮助

  4. # 4 楼答案

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

    1) First run the loops in hard form like on Register/on Page for understanding the loops.
    2) Use debugger to identify the loop progress.

  5. # 5 楼答案

    //如果矩阵为 1 2 3 4 5 6 7 8 9 输出为: 1. 4 2 7 5 3 8 6 九,

    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(" ");
                }
                }   
        }
    }