簡體   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