【发布时间】:2021-06-18 14:14:48
【问题描述】:
我正在尝试创建一个生成随机数的程序。当生成的随机数与当前日期匹配时,它会打印一个计数器来记录它尝试了多少次。日期格式为 ddMMyyyy,生成的随机数为 8 位。最后,它会打印五次日期和计数。这是我目前所拥有的,但它永远不会返回输出。
import java.util.Random;
import java.util.Date;
import java.text.*;
public class Program1 {
public static void main(String[] args) {
Date date = new Date();
Random value = new Random();
int x = value.nextInt();
int counter = 0;
do {
counter++;
} while(!date.equals(value));
if (date.equals(value)){
for(int i = 1; i < 6; i++) {
SimpleDateFormat sdf = new SimpleDateFormat ("ddMMyyyy");
System.out.println("The date is " + sdf.format(date) + "!");
System.out.println("The Count is: " + counter);
System.out.println();
}
}
}
}
【问题讨论】:
-
Random value = new value();这不是有效的 Java。发布代码时,请使用 IDE 中的复制/粘贴,不要重新输入代码。也请拨打tour,访问help center 并阅读How to Ask,了解如何有效地使用本网站。 -
问题是你的
do...while循环没有修改value的值。它在循环之前设置,在循环内不会改变。循环唯一要做的就是增加计数器。 -
顺便说一句,可怕的
Date和SimpleDateFormat类在几年前被 JSR 310 中定义的现代 java.time 类所取代。 -
我建议你不要使用
SimpleDateFormat和Date。这些类设计不佳且早已过时,尤其是前者,尤其是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的LocalDate和DateTimeFormatter。 -
比利·帕克,请不要通过破坏自己的问题来为他人创造更多的工作,这样答案就不再有意义了。如果您想提出新问题,请改为提出新问题。
标签: java date random counter java-time