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

停止尝试块自动迭代到下一个循环(对于循环java)

羊舌青青
2023-03-14

问候stack overflowers查看这个问题的同事,我是一个在Java中玩赛艇游戏的业余爱好者,目前面临一个问题,即for循环中的try块即使输入无效也会立即迭代到下一个循环。for循环包含一个用于发起掷骰子的输入,掷骰子函数位于一个单独的类中,当输入不是“y”时,它将抛出一个异常。try块在不在for循环中时工作得很好,但是当放在for循环中时,即使输入无效,它也会自动迭代循环。

for (int i = 0; i < boats.length; i++) {
    try {
        System.out.printf("BOAT %d TURN %n", i + 1);
        System.out.println("Type Y to throw your dice!");
        String diceThrow = input.nextLine();
        boats[i].setPosition(newRiver.Flow(boats[i].getPosition(), newDice.diceThrow(diceThrow)));
        System.out.println("boat position is at " + boats[i].getPosition());
    } catch (IllegalArgumentException e) {
        System.out.println(e.getMessage());
    }
}

共有1个答案

贾实
2023-03-14

我假设另一个类中用于模拟掷骰子的方法是抛出IllegalArgumentException。由于您是在catch块中处理它,所以for循环不会终止,它将打印错误并继续下一次迭代。

 类似资料:
  • 我想写一个程序,列出所有的。xml文件,然后将其复制到另一个目录并从原始目录中删除。程序的这一部分运行良好。我想这样做,我可以点击GUI中的一个按钮,让它扫描和处理文件夹,直到我按下一个按钮将其关闭。再说一次,打开它不是问题,但试图阻止它让我难堪。我想在两者之间等待一段时间,但要利用时间。sleep(x)冻结整个程序,在它停止Hibernate之前不允许我输入任何命令,只允许它处理然后再次Hibe

  • java中是否存在跳过for循环其余部分的令牌?类似VB的东西在Java中继续。

  • 如何进入JavaScript循环的下一次迭代? 例如: MDN文档只提到完全脱离循环,而不是转移到下一个迭代。

  • 对于最近的一个项目,我们使用Cycle2。我已升级到最新版本。我们正在使用Sitecore呈现内容。无论我采取何种方法(见下文),我都无法使autostop正常工作。我们每个幻灯片放映有2-3张幻灯片,我们希望它按以下模式移动:1-2-3-1。 我们是否在如下规则中将其呈现给自动播放: 或者如果我们让它在JS中以编程方式播放,而不使用“循环幻灯片”类: 我们正在正确加载JQuery。 在对功能做了

  • 有没有你可以开始和停止一个动画,所以播放1秒,停止1秒?我尝试过用单选按钮与Thread.Sleep切换来实现这一点,但是我认为这种方式是不可能的。有没有其他方法可以做到这一点?多谢了。

  • 本节我们探索的主题是迭代与循环。循环通常在计算机编程用用于自动执行重复性任务。 在Python中最常用的迭代形式就是for循环了。for循环允许你迭代出列表中所有的项,迭代出来后你可以做任何你想做的事情。 比如,我们创建了一个列表,并打印出其中所有元素的平方。 >>> for value in [0, 1, 2, 3, 4, 5]: ... print(value * value) ... 0 1