Пожалуйста, подскажите, что не так с логикой работы моего цикла do while? После того, как программа доходит до while, начинает выполняться метод isTeleportInvented (излишне печатает), хотя в моем понимании, программа должна просто сосчитать результат работы этого метода, то есть: "делай isTeleportInvented, добавляй 10 лет к текущему дню, до тех пор, пока isTeleportInvented не вернет false".
package com.javarush.task.pro.task16.task1605;
import java.util.Calendar;
import java.util.GregorianCalendar;
/*
Карманный телепорт
*/
public class Solution {
public static final String INVENTED = "Пожалуйста, можете забрать ваш карманный телепорт. Спасибо за ожидание!";
public static final String NOT_INVENTED = "Извините, телепорт еще не изобрели, приходите через 10 лет.";
public static final Calendar INVENTION_DAY = new GregorianCalendar(2062, Calendar.JUNE, 12);
public static void main(String[] args) {
Calendar currentDay = Calendar.getInstance();
do {
isTeleportInvented(currentDay);
currentDay.add(Calendar.YEAR,10);
}
while (!isTeleportInvented(currentDay));
}
static boolean isTeleportInvented(Calendar currentDay) {
boolean day = currentDay.after(INVENTION_DAY);
if (!day) {
System.out.println(NOT_INVENTED);
}
else {
System.out.println(INVENTED);
}
return day;
}
}