Я сейчас работаю над проектом «угадай число».Подсказка просит пользователя подумать о числе от 1 до 1000 (включая 1 и 1000). Моя проблема заключается в логике «более высоких» и «более низких» условных выражений.
Я уже пробовал так много комбинациймой код все еще не соответствует входному коду.Я вроде понимаю, почему, но я не могу объяснить, почему это не сужает мои цифры.
String text;
int min = 1;
int max = 1000;
int guess = 500;
int guess1, guess2;
while (!text.equals("yes")){
System.out.println("Is your number " + (guess) + "?");
System.out.println("yes,higher,or lower");
text = reader.nextLine();
if (text.equals("higher")){
min = guess;
guess1 = ((max - min+1)/2);
guess = guess1 + min;
}
if (text.equals("lower")){
min = guess;
guess = (max - min)/2;
}
}
}
}
В настоящее время я пытаюсь угадать 300. Это МОЙ ВЫХОД: Is your number 500?
yes,higher,or lower
lower
Is your number 250?
yes,higher,or lower
higher
Is your number 625?
yes,higher,or lower
lower
Is your number 187?
yes,higher,or lower
higher
Is your number 594?
yes,higher,or lower
lower
Is your number 203?
yes,higher,or lower
ЗДЕСЬЖелаемый выход:
Is your number 500?
yes, higher, or lower
lower
Is your number 250?
yes, higher, or lower
higher
Is your number 375?
yes, higher, or lower
lower
Is your number 312?
yes, higher, or lower
lower
Is your number 281?
yes, higher, or lower
higher
Is your number 296?
yes, higher, or lower
higher
Is your number 304?
yes, higher, or lower
lower
Is your number 300?
yes, higher, or lower
yes