针对增量java问题

针对增量java问题,java,for-loop,Java,For Loop,我是Java新手。我试图创建一个乘法表,表的两边各有12个,所以12向右,12向下。在每一行上,我们将看到两个值的倍数。所以我的计划是使用12个非常相似的语句来打印12行中的每一行。一个值将在循环中递增。问题是,第一行不是递增y值。所以它只是打印出间隔为1s的数据 如果你对我作业的后半部分有什么建议,那会很有帮助的。一旦我得到打印12位数字的第一行,我就可以为语句生成11个其他行。但我觉得可能有一种更简单的方法来获取其余的声明 public class Sixthree { public

我是Java新手。我试图创建一个乘法表,表的两边各有12个,所以12向右,12向下。在每一行上,我们将看到两个值的倍数。所以我的计划是使用12个非常相似的语句来打印12行中的每一行。一个值将在循环中递增。问题是,第一行不是递增y值。所以它只是打印出间隔为1s的数据

如果你对我作业的后半部分有什么建议,那会很有帮助的。一旦我得到打印12位数字的第一行,我就可以为语句生成11个其他行。但我觉得可能有一种更简单的方法来获取其余的声明

public class Sixthree
{
    public static void main (String[] args) 
  {
        int x = 1;
        int y = 1;

        System.out.print("   ");

        for ( int c= x*y; y<= 12; y++)
        {
            System.out.print(c + "  ");
        }
   }
}
但当前输出如下所示:

 1 1 1 1 1 1 1 1 1 1 1 1 1
但我希望它最终会像这样:
但是没有蓝线。

您应该使用两个嵌套for循环,一个用于迭代
x
的值,另一个用于迭代
y
的值,每个内部循环打印
x*y
的值,每个外部循环打印一个新行字符进行格式化

// Pseudo-code //
for(each x) {
    for(each y) {
        print(product);
    }
    print(newline);
}

因为循环初始化语句
int c=x*y
对于
for
循环只执行一次,所以您将获得所有1。也就是说,它是在
x=1
y=1
时第一次执行的,因为它是作为循环初始化语句而不是在循环体中给出的,所以永远不会重新计算它。for循环的工作原理如下:


循环初始化语句仅在循环开始时执行一次。在每次迭代之后,执行循环更新表达式并重新计算循环条件<代码>用于(循环初始化;循环条件;循环更新){…}

因此,您应该在循环内更新
c
,类似于:

for ( int c= x*y; y<= 12; y++)
{
    c = x*y;
    System.out.print(c + "  ");

}

for(int c=x*y;y为什么它只打印间隔为1s



这是因为在for循环中只为c赋值一次。for(int c=x*y;y
for)(int i=1;i
for(int x=1;x你应该使用两个嵌套的循环。你的例外输出是什么?我不知道你为什么认为它凌乱。它是隔开的。你可以从括号的缩进处看出。你的建议是什么?而且,没有人会为这么简单的东西付钱。这是为了学校。我不会说这和一些公司的做法相比糟糕de。循环声明中的间距不一致,支撑样式也不一致(类声明后的大括号位于下一行,其他所有大括号位于同一行)但就是这样。据我们所知,这些只是复制和粘贴错误。这肯定是一个复制粘贴问题,我编辑器上的代码看起来不是这样。当我复制粘贴代码到其他地方时,我必须记住这一点。我认为for循环会不断重复,直到条件不再满足为止?循环初始化语句仅在在循环开始时执行一次y。每次迭代后,执行循环更新表达式并重新计算循环条件。for(loop_initialization;loop_condition;loop_update){…}for具有以下结构:for(initial语句,运行一次;condition,始终计算;increment,始终运行);另外,如果您在循环中赋值
c
,就像jester所显示的那样,您不需要在循环开始时初始化它。
(int c;y那么外循环应该递增x,内循环应该递增y?这是正确的。每个for循环都被委派递增一个变量的任务,无论是
x
还是
y
。最内部的代码在每次递增y后执行,因此我们必须在这里打印产品。我这样做了,但我只得到了第一行之后是许多新的行。这对我来说,也许你的
(每个y)
行有错误。你能在这里发布那行吗?实际上我让它运行并打印正确的数字。现在出现了一个表格,但间距有点不稳定。两位数字偏离了行。这是因为它们需要另一位数字。我确信我可以通过一些小的调整正确地得到它。我看到你使用了System.out.printf(“%3d”。它使间距均匀。为什么?这是一个格式说明符,它使用至少3(%3D)的宽度输出整数。如果是数字,我会查找它。在我使用的书中,它说printf是避免的,因为:“对于格式化输出的问题,它不是一个特别干净的面向对象的解决方案。”
for ( int c= x*y; y<= 12; y++)
{
    c = x*y;
    System.out.print(c + "  ");

}
public static void main(String[] args) {
    int x = 12;
    int y = 12;

    for (int i = 1; i <= x; i++) {
        for (int j = 1; j <= y; j++) {
            System.out.printf("%d ", i * j);
        }
        System.out.println();
    }
}
for (int x = 1; x <= 12; x++)
{
    for (int y = 1; y <= 12; y++)
    {
        int multiply = x * y;
        System.out.print(multiply + "\t");
    }
    System.out.println();
}