Время для моего ежедневного вопроса о новичке на 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;
}
}
}