艺术与艺术Java的科学第4章,练习8

时间:2012-08-05 06:08:29

标签: java

我正在尝试编写一个程序来进行倒带倒计时,但是使用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;

    }

2 个答案:

答案 0 :(得分:4)

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

1

while (t >= 0);

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

2

t = t--;

您可以查看此问题,详细了解此语法:Is there a difference between x++ and ++x in java?

简而言之,t--的值仍为10,因此t = t--不会改变t的值。

循环应如下所示:

while (t >= 0) {
    println(t);
    t--;
}
println("Liftoff!");

答案 1 :(得分: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的值保持不变。