Почему главный метод не называется так называемым no. раз рекурсивно в java каждый раз, когда он выполняется?
Когда я пытался запустить эту программу пару раз, окончательное значение i
равно 11407
, 11417
, 11400
и т.д. перед отображением ошибки. Почему конечное значение i
не одинаково при каждом выполнении этой программы?
public class MainRecursive {
static int i=0;
public static void main (String arg[])
{
i++;
System.out.println(i);
main(arg);
}
}
Ответы
Ответ 1
Попытайтесь добавить System.out.flush();
после печати.
Поскольку размер стека не изменяется, я получаю одно значение при каждом запуске, но я думаю, что println()
прервется исключением до того, как он обновит вывод в разное время - это зависит от консоли, операционной системы и т.д. и не может быть детерминированным.