Непонятен один момент в программе
Только учу 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 шт):
Они не взаимодействуют в обоих направлениях, и сравнивать e=0, а i=2, нет никакого смысла
i - счётчик цикла, его портить нельзя, поэтому на каждом шаге его значение копируется в e, и уже с e производятся действия
Получается не 0 = 2, а переменной e присваивается значение переменной i. Т.е. на второй итераций е равно 2.
Вы же все это правильно понимаете парой строк выше:
На втором цикле ей присвоилось значение равное i, i на том цикле стало равно 1, значит e также стала равна 1