Добрый день. Возникла сложность, казалось бы на пустом месте. Код (Text): function Or_(){ echo '<table border="1">' . "\n \t" ; echo '<cption> Таблица истинности "ИЛИ" </cption>' . "\n \t"; echo "<tr> <th> a </th> <th> b </th> <th> a V b</th></tr>" . "\n \t"; for ($i=0; $i>1; $i++ ){ for($j=0; $j>1; $j++){ echo "<tr> <td> $i </td> <td> $j </td> <td>(int)($i || $j)</td></tr>" . "\n \t"; } } } В результате дальше первого for не уходит. Вызываю соответственно : Or_(); версия php 7.2 Что не так?
Мне кажется от версии пхп тут ничего не будет зависеть. В первой итерации устанавливается значение первого аргумента конструкции. Допустим для внешнего цикла это значение ноль в переменную ай. Далее выполняется тело цикла. Не важно какое. Далее выполняется инкремент - ноль станет единицей - и проверится условие продолжение цикла - "пока ай больше единицы". Сейчас ай равна единицы, а значит она не больше единицы, а значит более итераций не нужно. Во внутреннем цикле та же хрень. И да, если вдруг что-то пойдёт как надо то на выхлопе будет бесконечный цикла внутри бесконечного цикла так как любое значение большее единицы будет больше единицы, и инкремент будет его только сильнее увеличивать.
По тому как он прописан он и не должен работать: for ($i=0; $i>1; $i++ ){ Но с точки зрения синтаксиса php ошибок нет, возможно логическая ошибка, описка
@maksitv, уточню чуток: 1. инициализация (первое выражение) 2. проверка условия (второе выражение) 3. выполнение тела цикла/выход из цикла, в зависимости от истинности условия (2) 4. вычисление "шага цикла" (третьего выражения) к пункту 2. Условие продолжения в приведённом коде какое? Потому и не выполняется.
там скобочки не надо вот так надо. nction Oк { echo '<table border="1">' . "\n \t" ; echo '<cption> Таблица истинности "ИЛИ" </cption>' . "\n \t"; echo "<tr> <th> a </th> <th> b </th> <th> a V b</th></tr>" . "\n \t"; for ($i=0; $i>1; $i++ ){ for($j=0; $j>1; $j++){ echo "<tr> <td> $i </td> <td> $j </td> <td>(int)($i || $j)</td></tr>" . "\n \t"; } } } Бывает точки нехватает, и все работает, я незнаю для чего вообще такие выступления перед экраном компа, навверно хотят получить ответ а он даст еще 1 вопрос, потом еще, пока не надоест
@АлексейЩемитвдуше, какой скобочки? Действительно не видишь, что проблема в условии выполнения тела цикла?
в скобочках реально можно запутаться. я в случаю подобной мешанины иногда перехожу на алтернативный синтаксис Код (Text): for(...): ... endfor; ========== if(...): else: endif; ===== foreach(...): .... endforeach;