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

How can I amend my code related to loops to produce the expected output using java?

因此,当 '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

我知道我不能添加“break”;在 "System.out.println(i + " " + j);" 之后线。我应该在当前代码中修改什么以产生预期的输出?谢谢!

你不需要两个 for-loops。试试这个:

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--;
        }
    }
}

尝试直播:

IntStream.rangeClosed(r)
   .mapToObj(n -> n + " " + (r - n))
   .forEach(System.out::println);

我的 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);
        }
    }
}

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

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);
        }
    }
}