当前位置: 首页 > 知识库问答 >
问题:

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

章承
2023-03-14

所以当'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);"行之后添加"break;"。我应该在我当前的代码中修改什么来产生预期的输出?谢谢!

共有3个答案

祁承望
2023-03-14

试试流:

IntStream.rangeClosed(r)
   .mapToObj(n -> n + " " + (r - n))
   .forEach(System.out::println);
鲜于阳成
2023-03-14

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

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);
        }
    }
}
尉迟子民
2023-03-14

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

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--;
        }
    }
}
 类似资料:
  • 问题内容: 开发环境 我正在一个Maven Java客户端/服务器项目上,该项目依赖于协议缓冲区(protobuf)在客户端和服务器之间发送RPC。我使用Eclipse for Java EE作为主要IDE。由于我在项目中使用了Maven,因此我在使用Eclipse的m2eclipse插件。我在Eclipse中配置我的项目以使用“ Maven Nature”。 问题 基本上,使用上述工作区设置,如

  • 我正在创建一个非常简单的Bank Manager类,它处理许多银行帐户对象--每个对象都使用唯一的accountNumber、accName等创建。这就是创建银行帐户的方式: 谢了伙计们。

  • 所以我最近开始了使用Java开发Selenium Webdriver的工作。下面是代码:

  • 我承认这个问题的答案可能是“一些非常具体的魔法”,但我对我在这里观察到的有点震惊。我想知道是否有人了解这些类型的优化是如何工作的。我发现编译器设计非常有趣,我真的无法想象这是如何工作的。我肯定答案在clang源代码的某个地方,但我甚至不知道我会去哪里看。 我是大学一堂课的助教,最近我被要求帮助解决一个简单的家庭作业问题。这让我走上了一条有趣的道路...... 问题很简单:在x86_64程序集中,编

  • 问题内容: 即使其中一个使用后递增,另一个使用前递增,以下for循环也会产生相同的结果。 这是代码: 对于两个“ for”循环,我得到相同的输出。我想念什么吗? 问题答案: 评估或之后,两种情况下的新值i将相同。增量前和增量后的差异是对表达式本身求值的结果。 递增i并评估为的新值。 计算为的旧值,并递增i。 在for循环中这无关紧要的原因是控制流程大致如下所示: 测试条件 如果为假,则终止 如果是

  • 问题内容: 据我所知,将Java源代码解析为AST(抽象语法树)的唯一方法是使用Java编译器树API:com.sun.source.tree 我有两个问题: 哪些JDK支持com.sun.source.tree? 是否有适用于所有JDK的便携式替代产品? 问题答案: 您可以使用tools.jar并使用它。 javac是开源的,因此您只需获取该代码即可(假设您可以处理许可证)。 Antlr也具有J