Показать сообщение отдельно
  #3 (permalink)  
Старый 31.07.2014, 00:55
Интересующийся
Отправить личное сообщение для xSPiRiTx Посмотреть профиль Найти все сообщения от xSPiRiTx
 
Регистрация: 30.07.2014
Сообщений: 12

дошло, но только после просмотра кода и объяснения преподавателя!

var num =2, exp =10, result =1; count = 0;
while (count<exp) {
	result = result*num;
	count++;
}
console.log(result);


для удобства и для того, чтобы в будущем можно было легко менять значения, не перелопачивая весь код объявляем переменные: num - число, которое будем возводить в степень, exp - сама степень, result - переменная для получения результата, мы ее обозначили как числовой тип и присвоили единицу, потому что если там будет 0, то при возведении в степень всегда будет результат 0, count - ну и счётчик...причем у нас ему присвоен 0, значит в решении count должен быть меньше exp ибо отсчет начинается с нуля...а с нуля до девяти - это уже 10 (нам требуется возвести в степень 10)...если же в count мы запихаем 1, то тогда в решении будет count <= exp, потому что начнется отсчёт с единицы пока не станет равно нашей exp, которая в свою очередь равна 10.

результатом будет присвоение переменно result умножение её на число, которое возводится в степень. т.е. 1*2=2, теперь уже переменная result = 2. а значит в следующем цикле result = result*num будет выглядеть как 2*2. счётчик увеличился на один шаг (count++) и пока что в теле while значение true, поэтому он продолжает запускать цикл заново. Таким образом пока счетчик не перестанет соответствовать условию, что он меньше 10 (count<exp) циклы будут запускаться снова и снова. в то же время переменная result все набирает и набирает обороты. 2*2 - уже она равна 4 и выражениу result*num уже выглядит как 4*2 (у нас уже получается 2 в степени 3).

Последний раз редактировалось xSPiRiTx, 31.07.2014 в 01:26.
Ответить с цитированием