int e;
int result;
for (int i = 0; i < 10; i++)
{
result = 1;
e = i;
while (e > 0)
{
result *= 2;
e--;
}
Console.WriteLine("2 в степени " + i + " равно " + result);
}
Вывод программы:
2 в степени 0 равно 1
2 в степени 1 равно 2
2 в степени 2 равно 4
2 в степени 3 равно 8
2 в степени 4 равно 16
2 в степени 5 равно 32
2 в степени 6 равно 64
2 в степени 7 равно 128
2 в степени 8 равно 256
2 в степени 9 равно 512
Проблема:
Не могу понять, механизм работы кода, а именно в функции while.
На каждую итерацию внешнего цикла (for), а именно - все, кроме первой (где i = 0) будет цикл while с количеством итераций, равным i. Можно представить это так:
i = 5
while (5 > 0)
{
...
i--;
}
while (4 > 0) { ... i--; }
...
while (1 > 0) { ... i--; }
Конец
Серьёзно? У вас есть IDE с пошаговым выполнением программы и возможностью отслеживать содержимое переменных. Не стесняйтесь, посмотрите, что и когда меняется в процессе выполнения.