[英]Making a basic multiplication table in java using loop
嗨,我是初学者,所以请不要使用任何复杂的东西。 这是我的意思的SS。 到目前为止, http://prntscr.com/1ffec0不必担心垂直和水平方向的数字会显示它是什么列和行号。 我有我的代码,但对如何执行以及如何使其倍增感到完全困惑。
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();
}
}
}
我不会直接给您答案,但是我会通过一些伪代码来帮助您更好地理解问题。 假设您的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或任何其他范围进行硬编码。 这是微不足道的,我相信您将能够将其组合在一起。
将i + j更改为i * j顺便说一句,您仅打印矩阵的一半
您需要使用“ *”代替“ +”吗?
像这样:
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();
}
}
然后,您可能要考虑格式!! 我的建议:考虑最长值的长度(始终为x * y),并为其“预留”足够的空间!
更改:
System.out.print(" "+i+j);
至:
if ((i + j) <= 9) {
System.out.print(i + j + " ");
} else if ((i + j) <= 99) {
System.out.print(i + j + " ");
} else
System.out.print(i + j + " ");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.