代码之家  ›  专栏  ›  技术社区  ›  Necklace1226

如何修改与循环相关的代码,以使用java生成预期的输出?

  •  0
  • Necklace1226  · 技术社区  · 3 年前

    所以当'r'参数是整数5(预期输出)时,我想打印出如下内容:

    0 5
    1 4
    2 3
    3 2
    4 1
    5 0
    

    public class RandomWalker {
        public static void main(String[] args) {
            int r = Integer.parseInt(args[0]);
            for (int i = 0; i <= r; i++) {
                for (int j = r; j >= 0; j--) {
                    System.out.println(i + " " + j);
                }
            }
        }
    }
    

    相反,我得到了以下输出:

    0 5
    1 5
    2 5
    3 5
    4 5
    5 5
    

    我知道我不能加上“休息”在“System.out.println(i+”+j)之后线我应该修改当前代码中的哪些内容以产生预期的输出?非常感谢。

    4 回复  |  直到 3 年前
        1
  •  1
  •   Jhanzaib Humayun    3 年前

    循环不需要两个。试试这个:

    public class RandomWalker {
        public static void main(String[] args) {
            int r = Integer.parseInt(args[0]);
            for (int i = 0; i <= r; i++) {
                    System.out.println(i + " " + r-i);
            }
        }
    }
    

    如果你想使用两个变量,那么你可以这样做:

    public class RandomWalker {
        public static void main(String[] args) {
            int r = Integer.parseInt(args[0]);
            int j = r;
            for (int i = 0; i <= r; i++) {
                    System.out.println(i + " " + j);
                    j--;
            }
        }
    }
    
        2
  •  1
  •   Rexx Robertson    3 年前

    您必须将两个循环合并为一个:

    public class RandomWalker {
        public static void main(String[] args) {
            int r = Integer.parseInt(args[0]);
            for (int i = 0, j = r; i <= r; i++, j--) {
                System.out.println(i + " " + j);
            }
        }
    }
    
        3
  •  0
  •   Bohemian    3 年前

    试试流:

    IntStream.rangeClosed(r)
       .mapToObj(n -> n + " " + (r - n))
       .forEach(System.out::println);
    
        4
  •  0
  •   Galeokerdo    3 年前

    我的java已经生锈了,但类似的东西应该可以使用:

    public class RandomWalker {
        public static void main(String[] args) {
            int r = Integer.parseInt(args[0]);
            String string ="";
    
            for (int i = 0; i <= r; i++) {
                string = i + " " + (r - i);
                System.out.println(string);
            }
        }
    }