【问题标题】:Struggling with nested for loops挣扎于嵌套的 for 循环
【发布时间】:2014-11-14 16:34:27
【问题描述】:

好吧,我是嵌套 for 循环的新手,我在理解它们时遇到了一些问题。我已经阅读了很多指南,但我仍然没有完全理解。

好的提示:

编写产生以下输出的嵌套 for 循环:

000111222333444555666777888999 000111222333444555666777888999 000111222333444555666777888999

我目前拥有的东西

for(int num2 = 0; num2 <= 9;  num2++) {

      for(int num1 = 0; num1 <= 2; num1++) {

            System.out.println(num2 + " " + num2 + " " + num2);
      }
}      

输出是

0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9

我做错了什么?

【问题讨论】:

  • 您不需要为此同时使用循环计数器(例如j &lt; i)。走那条路不仅没有必要,而且可能会伤害你的头。 :}

标签: java loops nested


【解决方案1】:

每个号码都有 3 个副本。

外循环:

for (int i = 0; i < 10; i++) {

选择您要打印的数字,这样就可以了。

然而,内部循环将 j 与所选数字进行比较。您想要 3 个副本,而不是可变数量的副本。此更改将生成 3 个副本:

for (int j = 0; j < 3; j++) {

你也不需要这个:

System.out.println(i);

编辑:我刚刚注意到您需要其中 3 个输出。

添加一个外循环:

for (int x = 0; x < 3; x++) {

还有一个空格

System.out.println(" ");

所以最终的结果应该是:

for (int x = 0; x < 3; j++) {
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 3; j++) {
            System.out.print(i);
        }
    }
    System.out.println(" ");
}

【讨论】:

  • 没问题。标记为答案以回答问题。
【解决方案2】:
for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 10; j++) {
            System.out.print(j + "" + j + "" + j);
        }
        System.out.println();
    }

【讨论】:

    【解决方案3】:

    在您提供的程序中发生以下事件:-

    1. 在第一个循环变量 i 中启动,检查循环条件,然后如果条件为真,则移动到第二个循环。
    2. 现在第二个循环遍历 j 的值,直到条件为假,然后控制返回到第一个循环。

    尝试跟随循环的工作,你会发现自己哪里错了。

    【讨论】:

      【解决方案4】:

      试试这个:

      for (int i = 0; i < 3; i++) {
          for (int j = 0; j < 10; j++) {
              for (int k = 0; k < 3; k++) {
                  System.out.print(j);
              }
          }
          System.out.println("");
      }
      
      • 循环 1:您希望序列 3 次,每次出现在自己的行上。
      • 循环 2:您希望序列的数字 0 到 9 升序排列。
      • 循环 3:您希望序列中每个数字连续 3 次。

      【讨论】:

        【解决方案5】:
        for (int k = 0; k<3, k++){
            for (int i = 0; i< 10; i++) {
                for (int j = 0; j <  3;j++) {
        
                    System.out.println(i);   
                }
                }
                System.out.println("")};
        
            }
            }
        

        【讨论】:

        • 这可以通过一些上下文和评论来完成,而不仅仅是一个代码 sn-p
        【解决方案6】:
        for(int k=0;k<3;k++) {  
           for (int i = 0; i< 10; i++) {
               for (int j = 0; j <  3;j++) {
                    System.out.println(i);   
                }
            }
        }
        

        虽然我是迄今为止最缺乏经验的人,但我认为这应该可以提供您正在寻找的准确输出。

        【讨论】:

        • 不打印空格。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        • 2014-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多