0

我正在尝试编写一个对升空进行倒计时的程序,但使用的是 while 循环,而不是 for 循环。

到目前为止,我所做的只是创建了一个无限循环,尽管我使用的基本原理与 for 循环代码相同。

import acm.program.*;



public class CountDownWhile extends ConsoleProgram {


    public void run() {
        int t = START;
        while (t >= 0); {
            println(t);
            t = t--;
            }
        println("Liftoff!");
        }

    private static final int START = 10;

    }
4

2 回答 2

4

您的代码中有两个错误。这就是你得到一个无限循环的原因

1.

while (t >= 0);

您不应该在此行之后添加分号,因为它实际上意味着一个没有任何内容的 while 循环。

2.

t = t--;

您可以查看此问题以了解有关此语法的更多信息:Java 中的 x++ 和 ++x 之间有区别吗?

总之, 的值t--仍然是 10,所以t = t--不要改变 t 的值。

循环应如下所示:

while (t >= 0) {
    println(t);
    t--;
}
println("Liftoff!");
于 2012-08-05T06:19:55.093 回答
1

第一个问题是;while循环之后。尝试删除;...

public void run() {
    int t = START;
    while (t >= 0); {  /// <------ Problem 1. Correct: while(t>=0)
        println(t);
        t = t--;       /// <------ Problem 2. Correct: t--;   
        }
    println("Liftoff!");
    }

第二个问题是

t=t--;

因为 t 的值保持不变。

于 2012-08-05T06:14:12.460 回答