@kosyan4ik1

Как понять работу while в цикле for?

class help {
	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);
			
		}
			
	}
	
}


Есть вот такой код , я понимаю в цикле For мы получаем цифры от 1 до 9, и переходим в цикл while
но тут у меня вопросы , я не понимаю если мы объявляли result = 1; , то в цикле получаем result = result * 2; , то есть result = 1*2 , инкримента на него нет , то есть по идее он result = 1; должен быть всегда так же как и 2 ... но как тогда она все сработало ?
Помогите пожалуйста разобраться..
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
vabka
@vabka
Токсичный шарпист
1. Циклом for итерируемся по числам 0, 1, 2 ... 9
2. Внутри цикла в начале result = 1, а e = i
3. Перед каждой итерацией цикла while происходит сравнение с нулём
4. Внутри итерации мы умножаем result на 2
5. В конце итерации мы убавляем e
Тк тут нам важно только то, что умножение result на 2 будет повторяться i раз,
цикл while тут можно переписать так:
class help {
  public static void main (String args[]) {    
    for (var i=0;i < 10; i++) {
      var result = 1;
      for(var j = 0; j < i; j++)
        result *= 2;
      System.out.println("2 в степени " + i + " равно " + result);  
    }
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы