我正在尝试编写一个程序来进行倒带倒计时,但是使用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;
}
答案 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的值保持不变。