对于递增的Java问题

mun*_*air 2 java for-loop

我是Java新手。我正在尝试创建一个乘法表,该表的每侧有12个,因此12个在右边,而12个在下面。在每一行上,我们将看到两个值的倍数。因此,我的计划是使用12个非常相似的语句来打印十二行中的每一行。一个值将在循环内递增。问题是,第一行没有增加我的y值。因此,它只打印出间隔为1的内容。

如果您对我的作业后半部分有任何建议,那将有所帮助。一旦我得到打印12位数字的第一行,我就可以再输入11个for语句。但是我觉得可能有一种更简单的方法来获取其余的陈述。

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 + "  ");
        }
   }
}
Run Code Online (Sandbox Code Playgroud)

我希望输出像这样开始:

 1  2 3 4 5 6 7 8 9 10 11 12
Run Code Online (Sandbox Code Playgroud)

但是当前输出看起来像这样:

 1 1 1 1 1 1 1 1 1 1 1 1 1
Run Code Online (Sandbox Code Playgroud)

但我希望它最终像这样:http : //math.about.com/blgrid.htm 但没有蓝线。

jes*_*ter 5

由于循环初始化语句int c= x*y对于for循环仅执行一次,因此得到全1 。这是它第一次执行时x=1y=1和,因为,它被赋予作为循环初始化语句,而不是在循环体,它永远不会重新评估。for循环的工作方式如下:

循环初始化语句仅在循环开始时执行一次。每次迭代后,都会执行循环更新表达式,并重新评估循环条件。for(loop_initialisation;loop_condition;loop_update) { ... }

因此,您应该c在循环内进行更新,例如:

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

}
Run Code Online (Sandbox Code Playgroud)