Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用loop在java中生成基本乘法表_Java_Loops - Fatal编程技术网

使用loop在java中生成基本乘法表

使用loop在java中生成基本乘法表,java,loops,Java,Loops,嗨,我是一个初学者,所以请不要使用任何复杂的东西。 下面是我的意思的一个例子。 到目前为止,不必担心在垂直和水平方向上都有数字来显示列和行号。 我有我的代码,但我完全搞不懂如何去做,如何让它们成倍增长 import java.util.Scanner; public class test { public static void main(String[] args) { Scanner keyboard = new Scanner (System.i

嗨,我是一个初学者,所以请不要使用任何复杂的东西。 下面是我的意思的一个例子。 到目前为止,不必担心在垂直和水平方向上都有数字来显示列和行号。 我有我的代码,但我完全搞不懂如何去做,如何让它们成倍增长

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(); 
        }
    }
}
import java.util.Scanner;
公开课考试
{
公共静态void main(字符串[]args)
{
扫描仪键盘=新扫描仪(System.in);
int x=0,y=0;
系统输出打印(“输入行”);
x=键盘.nextInt();
系统输出打印(“输入列”);
y=键盘.nextInt();
对于(inti=1;i用i*j改变i+j
顺便说一句,您只打印了矩阵的一半

通过i*j更改i+j
顺便说一句,你只打印了矩阵的一半,我不会直接给你答案,但我会用一些伪代码帮助你更好地理解这个问题。假设你的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的范围,或者其他任何内容。这很简单,我相信你可以将其组合起来。

我不会直接给你答案,但我会用一些伪代码帮助你更好地理解这个问题。Assu告诉我你的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的范围或其他任何内容。这很简单,我相信您可以将其组合起来。

您需要使用“*”而不是“+”

像这样:

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

    }
}
公共静态无效打印(int x,int y){
对于(inti=1;i您需要使用“*”而不是“+”

像这样:

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

    }
}
公共静态无效打印(int x,int y){
对于(int i=1;i变化:

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

如果((i+j)改变:

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


if((i+j)你的意思是像
i*j
?哦,很好的例子!你可能已经注意到它似乎为值打印了“奇数”值。这是因为你将
i
压缩到字符串,然后将
j
压缩到字符串。所以对于你来说,如果
i
是1,
j
是2,你会得到'12'。你的意思是像
i*j吗?哦,很好的例子!您可能已经注意到它似乎为值打印了“奇数”值。这是因为您将
i
压缩到字符串中,然后将
j
压缩到字符串中。因此,对于您来说,如果
i
为1,
j
为2,您将得到'12'。成功了,但我发誓我之前尝试过,但没有成功也许你搞错了“+”?你需要它在该术语前面连接字符串“”和i*j。哈,工作了,但我发誓我之前试过了,但没有工作可能你搞错了“+”?你需要它在该术语前面连接字符串“”和i*j。