我 运行 对这个嵌套的 for 循环没有想法

I ran out of ideas for this nested for loop

所以我正在努力练习Java。我是初学者。 我有这个练习,它要求我编写一个嵌套的 for 循环。

结果应该是这样的:

Enter the size:4
Triangle is:
1
22
333
4444

Enter the size:6
Triangle is:
1
22
333
4444
55555
666666

这是我的代码:

public static void main(String arg[]){

Scanner scanner = new Scanner(System.in);

System.out.println("Enter the size:");
int size=scanner.nextInt();
System.out.println("Triangle is:");

//add your nested for loop logic here
//start
for(int i = 1; i <= size; i++)
{
    System.out.println(i);
    for(int j = 1; j < size; j++)
{

}

我正在努力思考它,但我似乎想不出其他方法。 那我需要做什么?

使用以下循环:

for (int i = 1; i <= size; i++) {
     for (int j = 1; j <= i; j++) {
           System.out.print(i);
     }
     System.out.println();
 }

这将产生:

Enter the size: 4 Triangle is: 1 22 333 4444

当变量 j1 运行到 i 时,内部循环将打印数字 ii 次。然后在下一行我们引入一个新行。

除了已经说过的内容之外,我还想提几件事。

  1. 在尝试将其实现为代码之前,您应该尝试在脑海中排列您在算法设计中所做的事情。在这种情况下,您实际上需要做什么才能使三角形出现?首先,您需要跟踪您在哪一行,然后您在该行的哪一行。最大行数由用户在 size 中指定,所以你就到此为止。然后对于每一行,您将打印一个字符,该字符也恰好是行号。最大列数与您所在的行相同,因为它应该是一个三角形。因此,您不想再次停在 size,而是 row。因为你说打印在你知道你在哪一列之前就完成了,这表明你可能没有首先完全设计你的算法 "on paper."

  2. 最好尝试根据变量实际指向的内容来命名变量,而不是随便使用一个字母,例如 "i" 或 "j"。当它们只是为了跟踪有多少次迭代时,通常会使用这些任意变量,但是当您在循环中引用它们时,最好为它们合理命名以提高可读性。当您刚开始时,这一点更为重要,这样您就可以跟踪自己实际在做什么!你可能想考虑这样的事情:

    for (int row = 1; row <= size; row++)
    {
        for (column = 1; column <= row; column++)
        {
            System.out.print(row);
        }
        System.out.println();
    }
    

    通过这种方式,您还可以在代码中看到您正在打印行号,而不仅仅是一些计数器。

  3. 这对我来说可能真的很挑剔,但文本提示通常总是在与提示相同的行上输入,而不是在下一行。因此,与其使用 println(),不如使用 System.out.print("Enter the size: ");(另请注意冒号后的 space)。

希望对您有所帮助!