Вывод всех степеней двойки до 2^31 включительно
В ходе изучения очередного чудо-языка программирования я столкнулся с очередным чудовищным синтаксисом:
<?php ## Вывод всех степеней двойки до 2^31 включительно $n = 2; $i = 1; while ($i < 32) { echo $n, "<br>"; $n = $n * 2; // можно было бы написать $n *= 2 $i = $i + 1; // можно было бы написать Si += 1 или даже $i++ } ?> Вопрос: Где здесь, мать её, связь между первоначальным числом (скорее всего, здесь это "$n") и степенью (скорее всего, здесь это "$i"), в которую это самое число возводится??? Как я могу предположить, логически здесь всё должно выглядеть так: <?php $n = 2; $i = 1; while ($i < 32) { echo $n, "<br>"; $n = $n ** $i; // ну насколько мне известно, "**" - это вроде и есть оператор возведения в степень $i++; } ?> 2-й из описанных вариантов синтаксиса не дал должного результата, чем меня очень сильно огорчил!!!:((((( !!! Убедительная просьба пояснять простыми (общепонятными) словами и терминами, а не заумными IT-шными !!! |
garrip91,
Цитата:
$n = 2; $i = 1; while ($i < 32) { echo $n, "<br>"; $n = $n * 2; // умножить $n на 2 и сохранить в эту же переменную получившееся значение $i = $i + 1; // это просто счетчик } Можно было написать так: $i = 0; while (++$i <= 31) echo 2 ** $i, '<br/>', PHP_EOL; Операторы в php Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Ответ на ответ
А как бы выглядел данный синтаксис, если бы я вместо "while" использовал "for"?
|
for($i=0;$i <= 31;++$i) echo 2 ** $i, '<br/>', PHP_EOL; |
Ответ на ответ
Цитата:
|
Часовой пояс GMT +3, время: 21:19. |