java - 如何创建一个总体 if 语句?如, "if this happens at any point in the program..."

标签 java karel

我的任务是为卡雷尔机器人创建一个算法,用于退出迷宫并在到达蜂鸣器时停止。我已经成功创建了这个算法,除了让卡雷尔在到达蜂鸣器时停止之外。这只是我的代码的一部分,但您会看到我基本上在每一步都插入了一个蜂鸣器检查点。我忍不住觉得有一种更简单的方法,另外,当我尝试使用新插入的蜂鸣器检查执行时,它给了我这个错误: Exception in thread "main"java.lang.StackOverflowError

    while(!arg.rightIsClear() && arg.frontIsClear() && !arg.nextToABeeper())
    {
        arg.move();
    }
    if(arg.rightIsClear() && !arg.nextToABeeper())
    {
        arg.turnRight();
        arg.move();

所以,如果可能的话,我想简单地有一个 if 语句,在整个程序的每个时间间隔进行检查。谢谢。

最佳答案

我认为:Create a custom event in Java就是您正在寻找的。

当您不小心在循环中调用相同的方法时,通常会发生堆栈溢出。这段代码是否位于任一方法 turnRight() 中或move()

关于java - 如何创建一个总体 if 语句?如, "if this happens at any point in the program...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17926729/

相关文章:

java - BouncyCaSTLe 的 "last block incomplete in decryption"问题涉及 PHP 和 Base64

java - 并发编程。使用机器人卡雷尔

java - 在 Karel Midpoint 练习中使用 Getter 和 Setter (Java)

eclipse - 无法在 Mac 10.6 上启动斯坦福大学的 CS106A Eclipse 版本 - "Unable to access jarfile startup.jar"

java - 卡雷尔机器人 : Could not find or load main class

iterator - 在 Java 中加入(联合)集合内部的集合

java - JTable 显得更小

java - 如果我将tomcat中的java版本更改为最新版本会发生什么

java - 如何将迭代方法转换为递归方法(Java)

java - 是否可以在maven编译器插件中配置javac版本而不安装特定的Jdk版本?