我如何修改我的代码相关的循环产生预期的输出使用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循环。试试这个:

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

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

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

尝试一个流:

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

最新更新