Как в данной программе каждый раз высчитывается новое значение result?
Только учусь java и разбираю цикл while. Наткнулся на непонятный мне момент в задаче. Как я понял переменная result в первый круг цикла не рассчитывается и в консоль выводится ее изначальное значение - 1. На втором круге цикла переменная result рассчитывается как 1*2=2 и выводится в консоль на 2-ой строке. Но как она меняется дальше??? Ей инициализировано значение 1, которое как я понял циклом никак не меняется, соответственно на последующих кругах цикла переменная result всегда рассчитывается как 1*2=2, но на консоль в последующих строках выходят значения переменной result равные 4, 8 и 16. Как это происходит? Что я упускаю и не так понимаю? Где-то переменная result все же циклится как бы?
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 в степени 0 равно 1 // На консоль вот так выводится
- 2 в степени 1 равно 2
- 2 в степени 2 равно 4
- 2 в степени 3 равно 8
- 2 в степени 4 равно 16
Ответы (1 шт):
while(e > 0) {
result *=2;
e--;
}
В этом цикле каждую итерацию происходит умножение на 2 переменной result и уменьшение переменной e на 1. То есть, result умножается на 2 количество раз, равное e.