所以在这里我只有一个简单的Java程序来计算斐波那契数列的数量。效果很好。没有错误。程序询问用户希望看到斐波那契数列的多少个数字。这里唯一明显的"问题"是这些数字几乎是自发计算和显示的。如果用户要求非常大量的数字,它们都会显示出来。然后,用户必须向上滚动才能从头开始阅读它们。我认为最好将显示数字的 println 语句延迟一秒钟以提高可读性。用户将有机会一次阅读每个数字!达到这种效果的专业方法是什么?我需要一个语句,使程序在每个数字显示后等待一点。我应该向代码中添加什么?这是我的代码:
import java.util.Scanner;
public class FibonacciModified {
public static void main(String[] args) {
System.out.print("This program will print out the ");
System.out.println("Fibonacci sequence of numbers.");
System.out.print("n");
Scanner keyboard = new Scanner(System.in);
System.out.println("How many numbers do you want?");
int numbers = keyboard.nextInt();
System.out.print("n");
int num1 = 0, num2 = 1, num3;
for (int z = 0; z < numbers; z++) {
switch (z) {
case 0:
System.out.println(num1);
break;
case 1:
System.out.println(num2);
break;
default:
num3 = num1 + num2;
System.out.println(num3);
num1 = num2;
num2 = num3;
break;
}
}
}
}
你来了:
import java.util.Scanner;
public class FibonacciModified {
public static void main(String[] args) {
System.out.print("This program will print out the ");
System.out.println("Fibonacci sequence of numbers.");
System.out.print("n");
Scanner keyboard = new Scanner(System.in);
System.out.println("How many numbers do you want?");
int numbers = keyboard.nextInt();
System.out.print("n");
int num1 = 0, num2 = 1, num3;
for (int z = 0; z < numbers; z++) {
switch (z) {
case 0:
System.out.println(num1);
break;
case 1:
System.out.println(num2);
break;
default:
num3 = num1 + num2;
System.out.println(num3);
num1 = num2;
num2 = num3;
break;
}
try {
Thread.sleep(1000); // 1000 is 1 sec
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
}
}
在for
后添加一个Thread.sleep(1000)
(1000 表示毫秒,您也可以TimeUnit.SECONDS.sleep(1)
更明确):
for (int z = 0; z < numbers; z++) {
Thread.sleep(1000);
您需要将InterruptedException
添加到 main 的throws
或在 try 块中处理异常,例如:
public static void main(String[] args) throws InterruptedException {
循环的每次迭代后使用以下方法:
TimeUnit.SECONDS.sleep(1);//停止执行一秒
上面在内部调用 Thread.sleep()。您在这里唯一的附加优势是,您无需计算要停止执行的毫秒数,这是 Thread.sleep(毫秒)工作所需的。
TimeUnit 可以灵活地将程序执行从纳秒暂停到天。
需要做的就是暂停主线程Thread.sleep(milliseconds)
例如,紧跟在 for 循环之后:
for (int z = 0; z < numbers; z++) {
Thread.sleep(500);
switch (z) {
...
使用以下方法,并在您调用System.out.println
的所有位置调用此方法。
public void printWithSleep(int x){
try{
Thread.sleep(1000);
System.out.println(x);
} catch(Exception e){
//Eat or print the exception
}
}