Непонятен один момент в программе

Только учу java и не понимаю как себя ведет тут переменная e. e изначально была равна 0, цикл while не сработал. На втором цикле ей присвоилось значение равное i, i на том цикле стало равно 1, значит e также стала равна 1, потом декрементировалась и е стала равно 0. В состоянии 0 она в начале следующего цикла попала к формуле e=i. Но у нас теперь e=0, а i=2, получается 0=2 - что вообще является непонятным абсурдом и какое значение e спускается дальше вниз по циклу? И как это влияет на работу программы? В общем буду рад, если объясните вот этот момент с переменными e и i. И как они друг с другом взаимодействуют?

public class HelloWorld {
public static void main(String[] args) {

int e;
int result;

for(int i=0; i < 10; i++) {
    result = 1;
    e = i;
    while(e > 0) {
        result *=2;                     
        e--;
    }
    System.out.println(" - 2 в степени " + i + " равно " + result);
}

}


Ответы (2 шт):

Автор решения: MBo

Они не взаимодействуют в обоих направлениях, и сравнивать e=0, а i=2, нет никакого смысла

i - счётчик цикла, его портить нельзя, поэтому на каждом шаге его значение копируется в e, и уже с e производятся действия

→ Ссылка
Автор решения: Эникейщик

Получается не 0 = 2, а переменной e присваивается значение переменной i. Т.е. на второй итераций е равно 2.

Вы же все это правильно понимаете парой строк выше:

На втором цикле ей присвоилось значение равное i, i на том цикле стало равно 1, значит e также стала равна 1

→ Ссылка