我是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 但没有蓝线。
由于循环初始化语句int c= x*y对于for循环仅执行一次,因此得到全1 。这是它第一次执行时x=1和y=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)