Как уже отмечали другие, поскольку вы выполняете постинкремент и присваивание в одном и том же выражении (i = i++;
), ваша программа работает в бесконечном l oop.
Возможно, вы захотите изменить его на присваивание перед инкрементом (i = ++i;
) или, что еще лучше, обычное пре- или постинкрементное (i++;
).
Посмотрите на эту ссылку, чтобы понять разницу между операторами до и после операции.
Я рекомендую for
l oop вместо while
l oop для лучшей читаемости. Смотрите следующий фрагмент:
for(int i = first; i <= second; i++) {
sum = sum + i;
}
Если вам нравится Stream
API вместо традиционных циклов, вы также можете напечатать сумму следующим образом:
System.out.println("The sum is " + IntStream.rangeClosed(first, second).sum());
Кстати, вы можете захотеть закрыть ресурс Scanner
после того, как вы его используете, чтобы избежать утечки ресурса, например: scanner.close();