Вывод всех степеней двойки до 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, время: 07:06. |