Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Вывод всех степеней двойки до 2^31 включительно (https://javascript.ru/forum/server/75731-vyvod-vsekh-stepenejj-dvojjki-do-2%5E31-vklyuchitelno.html)

garrip91 01.11.2018 14:46

Вывод всех степеней двойки до 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-шными !!!

Nexus 01.11.2018 15:25

garrip91,
Цитата:

Сообщение от 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.

garrip91 01.11.2018 17:51

Ответ на ответ
 
А как бы выглядел данный синтаксис, если бы я вместо "while" использовал "for"?

Nexus 02.11.2018 07:03

for($i=0;$i <= 31;++$i)
    echo 2 ** $i, '<br/>', PHP_EOL;

garrip91 03.11.2018 11:37

Ответ на ответ
 
Цитата:

Сообщение от Nexus (Сообщение 497680)
for($i=0;$i <= 31;++$i)
    echo 2 ** $i, '<br/>', PHP_EOL;

Спасибо Вам большое, уважаемый "Nexus"! Вы мне очень сильно помогли!!!


Часовой пояс GMT +3, время: 21:19.