使用循环在java中创建基本乘法表

时间:2013-07-14 21:16:02

标签: java loops

您好我是初学者所以请不要使用任何复杂的东西。 这是我的意思的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(); 
        }
    }
}

4 个答案:

答案 0 :(得分:4)

我不打算直接给你答案,但是我会用一些伪代码帮助你更好地理解这个问题。假设你的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,或者其他什么。这是微不足道的,我相信你能把它放在一起。

答案 1 :(得分:0)

用i * j改变i + j 顺便说一句,你只打印矩阵的一半

答案 2 :(得分:0)

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

像这样:

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)和“reservice”为它提供空间!

答案 3 :(得分:0)

更改:

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 + " ");