【问题标题】:I ran out of ideas for this nested for loop我对这个嵌套的 for 循环没有想法
【发布时间】:2015-09-16 03:54:56
【问题描述】:

所以我正在尝试练习 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++)
{

}

我正试图绕过它,但我似乎想不出其他方法。 那么我需要做什么呢?

【问题讨论】:

    标签: java for-loop nested


    【解决方案1】:

    使用以下循环:

    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

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

    【讨论】:

      【解决方案2】:

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

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

      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: ");(还要注意冒号后面的空格)。

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 2022-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-13
        • 1970-01-01
        • 2021-09-29
        • 1970-01-01
        相关资源
        最近更新 更多