【问题标题】:Can I convert for loop number pattern to while loop and do while loop?我可以将 for 循环编号模式转换为 while 循环并执行 while 循环吗?
【发布时间】:2020-07-22 18:22:06
【问题描述】:

我正在学习 java 循环,并设法使用 for 循环打印出第一模式。 我尝试使用 while 打印第一模式并执行 while 循环,但遇到了困难。这是我的代码:

for (int i = 0; i <= 7; i++) {
    for (int j = 0; j <= 4; j++) {
        if ((i == 0 && j > 1) || (i == 1 && j > 0) || (i == 2 && j >= 0) || (i == 3 && j > 1) || (i > 3 && j > 1))
            System.out.print("1");
        else
            System.out.print(" ");
    }

    System.out.println();
}

这是我的 while 循环代码:

int i = 0, j = 0;
        while (i <= 7) {
            while (j <= 4) {
                if((i == 0 && j > 1) || (i == 1 && j > 0) || (i == 2 && j >= 0) || (i == 3 && j > 1) || (i > 3 && j > 1))
                    System.out.print("1");
                else
                    System.out.print(" ");

                j++;
            }

            System.out.println();
            i++;
        }

【问题讨论】:

    标签: java loops for-loop while-loop do-while


    【解决方案1】:

    是的,任何 for 循环都可以转换为 while 或 do-while。

    例如:

    for(initialize; condition_check, statement1) {
        ......
    }
    

    这里statement1 => 通常这是条件检查中使用的变量的increment 或decrement

    类似的等价while循环是:

    initialize;
    while (condition_check) {
         .......;
         statement1;
    }
    

    所以您似乎忘记了初始化其中一个变量。另一个答案已经给你了。

    这个答案将有助于将for 循环映射到while 循环,反之亦然。

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      需要在第一个j_while 结束后重置j 计数器

      int i = 0, j = 0;
      while (i <= 7)
      {
      //could also reset here
      j=0;
          while (j <= 4)
          {
           if((i == 0 && j > 1) || (i == 1 && j > 0) || (i == 2 && j >= 0) || (i == 3 && j > 1) || (i > 3 && j > 1))
               System.out.print("1");
           else
               System.out.print(" ");
               j++;
           }
             System.out.println();
             i++;
       }
      

      【讨论】:

      • 很高兴能帮上忙,如果你好心可以标记为解决方案:)
      猜你喜欢
      • 1970-01-01
      • 2018-02-22
      • 2017-04-26
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      相关资源
      最近更新 更多