【问题标题】:How do I make a delay in a for loop in java?java - 如何在java中的for循环中进行延迟?
【发布时间】:2020-02-15 19:27:02
【问题描述】:

我正在尝试在 Java (BlueJ) 中的 for 循环中添加暂停。当我使用Thread.sleep(1000) 时,我最终得到一个异常:“必须捕获或声明抛出未报告的异常 java.lang.InterruptedException”

导致异常的代码可能有什么问题:

public class R {

  private boolean a;
  private boolean b;

  if(a && b) {
     String[]Array = {"x","y","z"};
     for(int i = 0; i < Array.length; i++, Thread.sleep(1000))
     {
       System.out.print(Array[i]);
     }
  }
}

我希望最终结果如下:

x

//delay

y

//delay

z

【问题讨论】:

  • 为什么你的班级里直接有代码块?如果没有,用函数写。我建议你捕捉异常。如果您不了解它们,请阅读here
  • 这无法编译..
  • 您的代码在线程中执行。如果你用sleep暂停它,其他人可能会在此期间中断它——这就是这个方法抛出异常的原因。将您对 Thread.sleep 的呼叫封装在 try-catch-block 中。
  • 谁甚至赞成这个?点赞按钮显示“这个问题展示了研究成果,它有用且清晰。”

标签: java arrays for-loop delay bluej


【解决方案1】:

您需要将 Thread.sleep(1000) 代码放入循环中,如下所示:

for(int i = 0; i < Array.length; i++){
   System.out.print(Array[i]);
   Thread.sleep(1000); // if you prefer, you could put before the System.out...
}

而且我建议你用InterruptedException异常处理封装Thread.sleep(1000)。

以下是一些示例,说明如何做到这一点。 Java Delay/Wait

【讨论】:

    猜你喜欢
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多