簡體   English   中英

使用循環在Java中制作基本乘法表

[英]Making a basic multiplication table in java using loop

嗨,我是初學者,所以請不要使用任何復雜的東西。 這是我的意思的SS。 到目前為止, http://prntscr.com/1ffec0不必擔心垂直和水平方向的數字會顯示它是什么列和行號。 我有我的代碼,但對如何執行以及如何使其倍增感到完全困惑。

import java.util.Scanner;

public class test 
{
    public static void main(String[] args)    
    {
        Scanner keyboard = new Scanner (System.in);
        int x=0, y=0;
        System.out.print("Enter rows ");
        x = keyboard.nextInt();
        System.out.print("Enter columns ");
        y = keyboard.nextInt();

        for (int i=1; i<=x; i++) 
        {
            for (int j=1; j<=y; j++)
            {
                System.out.print(" "+i+j);
            }
            System.out.println(); 
        }
    }
}

我不會直接給您答案,但是我會通過一些偽代碼來幫助您更好地理解問題。 假設您的x范圍從1到3,並且您的y范圍也從1到3。

您正確設置了2個循環

Loop x = 1 to 3
    Loop y = 1 to 3
        //Do stuff
    End innerloop
End outerloop

現在考慮將在// do東西上打印的值,成對出現(x,y),如:

(1,1),(1、2),(1、3),(2、1),(2、2)等,直到(3,3);

顯然,您希望顯示產品,因此在循環內創建一些變量z = x * y

//Do stuff:
z = x * y
Print z + " "

打印出z並留一個空格,因為您要打印下一個值而不使其與第一個值相鄰。

這將在一條直線上打印所有解決方案。 但是您顯然希望它在矩陣中。 答案是簡單的簡單更改,僅需一行代碼。 在內部循環的每個完整周期之后,您基本上完成了一行乘法(思考為什么)。 因此解決方案是,在您的內循環完成運行之后,就在轉到下一個x的外循環值之前,您要打印新行。 總而言之,我們有這樣的東西:

Loop x = 1 to 3
    Loop y = 1 to 3
        z = x * y
        Print z + " "
    End innerloop
    Print NewLine // "\n" is the way to do that
End outerloop

這樣就完成了。 您只需要將其放入代碼中,並接受用戶輸入即可,而不是對范圍從1到3或任何其他范圍進行硬編碼。 這是微不足道的,我相信您將能夠將其組合在一起。

將i + j更改為i * j順便說一句,您僅打印矩陣的一半

您需要使用“ *”代替“ +”嗎?

像這樣:

public static void print(int x, int y) {
    for (int i = 1; i <= x; i++) {

        for (int j = 1; j <= y; j++) {

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

    }
}

然后,您可能要考慮格式!! 我的建議:考慮最長值的長度(始終為x * y),並為其“預留”足夠的空間!

更改:

System.out.print(" "+i+j);

至:

if ((i + j) <= 9) {
    System.out.print(i + j + "   ");
} else if ((i + j) <= 99) { 
    System.out.print(i + j + "  ");
} else 
    System.out.print(i + j + " ");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM