首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >编写一个Java程序,提示输入一个数字并从该数字开始倒计时

编写一个Java程序,提示输入一个数字并从该数字开始倒计时
EN

Stack Overflow用户
提问于 2018-09-23 05:16:57
回答 4查看 1.4K关注 0票数 -1

我必须编写一段代码,提示用户输入一个数字,它应该从数字开始倒数到0。我被告知:需要三个函数: main()、doCountDown()和waitASec()。可选的是,第四个函数将执行用户交互。到目前为止,这就是我所拥有的。没有错误,代码运行。但是,倒计时不会停止在0,它不断倒计时到负数。我不确定从这里到哪里去。

代码语言:javascript
复制
import java.util.Date;
import java.util.Scanner;

public class Code {

    public static void main(String[] args) {
        System.out.println("Count down how many seconds? ");
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        sc.close();
        doCountDown(num);
    }
    public static void doCountDown(int num){
        for(int i=num;i<=num;i--){
            System.out.println(i);
            waitASec();
        }
    }
    private static void waitASec() {
        long t = new Date().getTime();
        long t1=t+1000;
        for(;t<t1;) {
            t = new Date().getTime();
        }
    }

}
EN

回答 4

Stack Overflow用户

发布于 2018-09-23 05:22:16

for-loop中,您的doCountDown方法应该检查条件递减到0。即i>=0

代码语言:javascript
复制
public static void doCountDown(int num){
    for(int i=num;i>=0;i--){
        System.out.println(i);
        waitASec();
    }
}
票数 2
EN

Stack Overflow用户

发布于 2018-09-23 05:23:16

看看for循环的中间部分,i<=num。这是决定循环何时终止的部分。也就是说,只要i小于或等于num,循环就会继续。I开始等于num,在每个循环结束时,将i减去1 (i--)。所以i总是小于num,因此你的循环将永远持续下去。

请尝试使用for(int i=num;i >= 0;i--)。

票数 0
EN

Stack Overflow用户

发布于 2018-09-23 05:23:44

当然,倒计时永远不会结束。因为i <= num总是正确的。用这个改变你的逻辑;

代码语言:javascript
复制
public static void doCountDown(int num){
    for(int i=num;i>= 0;i--){
        System.out.println(i);
        waitASec();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52460954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档