Спасибо всем людям которые подошли к моей прошлой теме без насмешки, и дали мне подсказки что мне делать.
В итоге я взял пособие по которому сейчас занимаюсь.
В этом пособии дали задание найти ошибку в программе из-за которой она выдаёт ответ не соответствующий ожиданию. Вообщем вот она:
public class bear {
public static void main(String[] args){
int x = 99;
String word = "бутылок";
while (x > 0) {
if (x == 1) {
word = "бутылка";
}
if (x == 4) {
word = "бутылки";
}
System.out.println(x + " " + word + " " + "пива на стене");
System.out.println(x + " " + word + " " + "пива");
System.out.println("Возьми одну");
System.out.println("Пусти по кругу");
x = x - 1;
if (x > 0) {
System.out.println(x + " " + word + " " + "пива на стене");
} else {
System.out.println("Нет" + " " + word + " " + "пива на стене");
}
}
}
}
Получаемый ответ:
5 бутылок пива на стене
5 бутылок пива на стене
5 бутылок пива
Возьми одну
Пусти по кругу
4 бутылок пива на стене
4 бутылки пива на стене
4 бутылки пива
Возьми одну
Пусти по кругу
3 бутылки пива на стене
3 бутылки пива на стене
3 бутылки пива
Возьми одну
Пусти по кругу
2 бутылки пива на стене
2 бутылки пива на стене
2 бутылки пива
Возьми одну
Пусти по кругу
1 бутылки пива на стене
1 бутылка пива на стене
1 бутылка пива
Возьми одну
Пусти по кругу
Нет бутылка пива на стене
(я не стал писать полный ответ по понятным причинам)
Прикол тут как вы заметили состоит в том что первый принт не реагирует на изменение в ворде. Проблему я конечно через некоторое время решил, но понять почему так происходит не получилось.
Если можете пожалуйста объяснить как так получается.