使用loop在java中生成基本乘法表
嗨,我是一个初学者,所以请不要使用任何复杂的东西。 下面是我的意思的一个例子。 到目前为止,不必担心在垂直和水平方向上都有数字来显示列和行号。 我有我的代码,但我完全搞不懂如何去做,如何让它们成倍增长使用loop在java中生成基本乘法表,java,loops,Java,Loops,嗨,我是一个初学者,所以请不要使用任何复杂的东西。 下面是我的意思的一个例子。 到目前为止,不必担心在垂直和水平方向上都有数字来显示列和行号。 我有我的代码,但我完全搞不懂如何去做,如何让它们成倍增长 import java.util.Scanner; public class test { public static void main(String[] args) { Scanner keyboard = new Scanner (System.i
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();
}
}
}
import java.util.Scanner;
公开课考试
{
公共静态void main(字符串[]args)
{
扫描仪键盘=新扫描仪(System.in);
int x=0,y=0;
系统输出打印(“输入行”);
x=键盘.nextInt();
系统输出打印(“输入列”);
y=键盘.nextInt();
对于(inti=1;i用i*j改变i+j
顺便说一句,您只打印了矩阵的一半通过i*j更改i+j
顺便说一句,你只打印了矩阵的一半,我不会直接给你答案,但我会用一些伪代码帮助你更好地理解这个问题。假设你的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的范围,或者其他任何内容。这很简单,我相信你可以将其组合起来。我不会直接给你答案,但我会用一些伪代码帮助你更好地理解这个问题。Assu告诉我你的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的范围或其他任何内容。这很简单,我相信您可以将其组合起来。您需要使用“*”而不是“+”
像这样:
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();
}
}
公共静态无效打印(int x,int y){
对于(inti=1;i您需要使用“*”而不是“+”
像这样:
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();
}
}
公共静态无效打印(int x,int y){
对于(int i=1;i变化:
System.out.print(" "+i+j);
致:
如果((i+j)改变:
System.out.print(" "+i+j);
致:
if((i+j)你的意思是像i*j
?哦,很好的例子!你可能已经注意到它似乎为值打印了“奇数”值。这是因为你将i
压缩到字符串,然后将j
压缩到字符串。所以对于你来说,如果i
是1,j
是2,你会得到'12'。你的意思是像i*j吗代码>?哦,很好的例子!您可能已经注意到它似乎为值打印了“奇数”值。这是因为您将i
压缩到字符串中,然后将j
压缩到字符串中。因此,对于您来说,如果i
为1,j
为2,您将得到'12'。成功了,但我发誓我之前尝试过,但没有成功也许你搞错了“+”?你需要它在该术语前面连接字符串“”和i*j。哈,工作了,但我发誓我之前试过了,但没有工作可能你搞错了“+”?你需要它在该术语前面连接字符串“”和i*j。