【发布时间】:2010-04-22 18:08:45
【问题描述】:
是我每天的新手 Java 问题的时间:-D
我一定没有正确理解 while 循环中的条件。
我有这个:
while (true){
if (){
...
} else {
...
}
if (){
...
} else {
...
}
if (SENTINEL){
break;
}
}
第一个 if/else 语句正在工作,并且哨兵正在工作,但第二个 if 语句被跳过。如果我翻转第一个和第二个 if 语句,那么第一个 if 语句仍然总是被执行并跳过第二个。我错过了什么?
我可以像这样在一个块中包含两个 if/else 语句吗?
我将包含整个代码,尽管它非常难看,而且我相信会有很多人告诉我更好的方法。我不介意学习更好的方法,但现在,我只想回答这个循环问题。谢谢!
public class FindRange extends ConsoleProgram {
private static final int SENTINEL = 0;
int value = 0;
int highNumber = 0;
int latestValue = 0;
int lowNumber = 0;
public void run() {
addNumbers();
}
private void addNumbers(){
value = readInt("Enter number:");
while(true){
if (value == SENTINEL){
break;
}
latestValue = readInt("Enter number:");
getHighNumber();
getLowNumber();
if (latestValue == SENTINEL){
break;
}
}
println("High Number is "+highNumber+".");
println("Low Number is "+lowNumber+".");
}
private void getHighNumber(){
if (latestValue >= value){
highNumber = latestValue;
}else {
highNumber = value;
}
}
private void getLowNumber(){
if (latestValue <= value){
lowNumber = latestValue;
}else {
lowNumber = value;
}
}
}
【问题讨论】:
-
您应该发布您的实际代码;很明显,这段代码被重新输入了。事实上,它看起来并没有错。应该评估第二个 if。
-
我们将需要 if 语句中的代码和条件代码,因为没有它我们将无能为力。
-
有些东西你没有在这里展示给我们。请张贴您的实际代码。这还不够。顺便说一句:你忘记了
break后面的分号。
标签: java