我是Java的新手。我正在尝试创建一个乘法表,每个表的每一侧有12个,所以12个向右,12个向下。在每一行上,我们将看到两个值的倍数。所以我的计划是使用12个非常相似的语句来打印十二行中的每一行。一个值将在循环内递增。问题是,第一行不是增加我的y值。所以它只打印出间隔1秒。
如果您对我的后期任务有任何建议,那将会很有帮助。一旦我得到第一行打印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 + " ");
}
}
}
我希望out out看起来像这样开始。:
1 2 3 4 5 6 7 8 9 10 11 12
但目前的输出如下:
1 1 1 1 1 1 1 1 1 1 1 1 1
但我希望它最终能像这样:http://math.about.com/blgrid.htm 但没有蓝线。
答案 0 :(得分:4)
您获得全1,因为循环初始化语句int c= x*y
将仅对for
循环执行一次。也就是说它是在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 + " ");
}
答案 1 :(得分:0)
你应该使用两个嵌套for循环,一个迭代x
的值,另一个遍历y
的值,每个内循环打印x * y
的值并且每个外部循环都打印一个新的行字符以进行格式化。
// Pseudo-code //
for(each x) {
for(each y) {
print(product);
}
print(newline);
}
答案 2 :(得分:0)
为什么它只打印出间隔1秒?
这是因为你只在for循环中只分配一次c。 for(int c = x * y; y&lt; = 12; y ++)
当值y为incvreasing时,值c不会改变。值为1 * 1 = 1(x = 1,y = 1)。
结果,你看到它只打印出间隔1秒。
您可以使用嵌套for循环来实现它。
公共课16岁{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();
}
}
}
答案 3 :(得分:0)
for (int i = 1; i <= 12; i++) {
for (int j = 1; j <= 12; j++){
System.out.printf ("%3d ", j * i);
}
System.out.print ("\n");
}
上面的代码将为您提供类似于以下所示的输出:
1 2 3 4 5 6 7 8 9 10 11 12
2 4 6 8 10 12 14 16 18 20 22 24
3 6 9 12 15 18 21 24 27 30 33 36
4 8 12 16 20 24 28 32 36 40 44 48
5 10 15 20 25 30 35 40 45 50 55 60
6 12 18 24 30 36 42 48 54 60 66 72
7 14 21 28 35 42 49 56 63 70 77 84
8 16 24 32 40 48 56 64 72 80 88 96
9 18 27 36 45 54 63 72 81 90 99 108
10 20 30 40 50 60 70 80 90 100 110 120
11 22 33 44 55 66 77 88 99 110 121 132
12 24 36 48 60 72 84 96 108 120 132 144
答案 4 :(得分:0)
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();
}