我是Java的新手。我试图制作一个看起来像这样的三角形乘法表:
输入第7行
1 2 3 4 5 6 7
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
每行/每列都必须编号,我不知道如何做到这一点。我的代码看起来似乎已经过时了,因为我得到了一个不包含正确值的无限循环。您将在下面找到我的代码。
public class Prog166g
{
public static void main(String args[])
{
int userInput, num = 1, c, d;
Scanner in = new Scanner(System.in);
System.out.print("Enter # of rows "); // user will enter number that will define output's parameters
userInput = in.nextInt();
boolean quit = true;
while(quit)
{
if (userInput > 9)
{
break;
}
else
{
for ( c = 1 ; c <= userInput ; c++ )
{ System.out.println(userInput*c);
for (d = 1; d <= c; d++) // nested loop required to format numbers and "triangle" shape
{
System.out.print(EasyFormat.format(num,5,0));
}
}
}
}
quit = false;
}
}
EasyFormat指的是一个应该正确格式化图表的外部文件,所以请忽略它。如果有人可以指出我正确的方向,修复我现有的代码并添加代码来编号列和行,这将是非常感谢!
答案 0 :(得分:0)
两个嵌套的for循环可以解决这个问题:
for (int i = 1; i < 8; i++) {
System.out.printf("%d\t", i);
}
System.out.println();
for (int i = 1; i < 8; i++) {
for (int j = 1; j <= i; j++) {
System.out.printf("%d\t", i * j);
}
System.out.println();
}
<强>输出强>
1 2 3 4 5 6 7
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49