Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 381
1

Об операторах цикла

16.02.2012, 15:47. Показов 767. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здрасьте!
Вот не понял кое-что и решил задать вопрос людям знающим.

В качестве результата выполнения кода

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
$e = 1;
$r = 6;
 
while($e < $r) 
{
  if ($e == 5)
    {
     continue;
    }
 echo ++$e;
 echo ('<br>');
};
?>
мне выдают ошибку Maximum execution time of 5 seconds exceeded.
При этом придираются к строке 6.
Подскажите, в чем меня ошибка.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2012, 15:47
Ответы с готовыми решениями:

Синтаксис в операторах while и do while
Всем драсте потихоньку балуюсь с++ мозг плавится слишком уж придирчивый язык к...

Cin в операторах if/else
Собственно простейшая программа, которая по введённому числу &quot;A&quot; определяет, является ли оно чётным...

Путаница в операторах
Что же возвращает 6-ая строка? BOOL String::Invariants() const { #ifdef SHOW_INVARIANTS...

Запутался в логичексих операторах
Ошибка, думаю простая, но перепробовал много вариантов - не работает. В главном классе Main ...

3
163 / 163 / 9
Регистрация: 08.01.2011
Сообщений: 850
16.02.2012, 15:56 2
Вы прибавляете прединкрементом $e.
Когда он становится равен 5 у вас команда "следующий". Которая заставляет прекратить итерацию цикла и начать новую.
На что цикл отвечает, что $e равный 5 - максимум (потому что <6 это 1-5) по циклу. Сделай $r больше 6.

Добавлено через 1 минуту
В общем говоря, ты заставляешь интерпретатор цикла крутиться в 6-ой раз, хотя сам же написал что максимум циклов - 5.

Добавлено через 51 секунду
А вообще забавная наглость никогда не знал, как будет себя вести PHP в этом случае.

Добавлено через 1 минуту
А нет, пардон.

Все не так.
Поскольку $e у тебя на вечно остается равен 5-ти, то это просто зацикливание. Которое никогда не кончается.
А в PHP есть max_execution_time. (максимальное время выполнения скрипта).
Вот оно дошло до предела.
0
EK
8 / 8 / 0
Регистрация: 16.02.2012
Сообщений: 381
16.02.2012, 23:15  [ТС] 3
KoIIIeY, спасибо за помощь.
И все-таки, кое-что не понятно.
В учебнике прочитал следующее:

"Иногда бывает нужно прервать только текущую итерацию, и перейти сразу к следующей. Для этого применяется оператор continue:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
   $var = 7;
   $i = 0;
   while(++$i <= $var)
   {
      if($i==5)
      {
         continue;
      }
      echo($i);
      echo('<br>');
   }
?>
В этом примере выводятся цифры от 1 до 7, кроме цифры 5".

Я это понял так: когда $i становится равна 5, то данная итерация вываливается из кода и на экран выводится не 5, а 6.

Когда я написал у себя

PHP
1
2
3
4
5
{
  if ($e == 5)
    {
     continue;
    }
я думал, что $e дойдет до 5, итерация вывалится и сразу перейдет к 6, а он вместо этого зациклился.
Кажется, я понял неправильно? Подскажите, пожалуйста.
0
21 / 21 / 6
Регистрация: 19.06.2010
Сообщений: 230
16.02.2012, 23:29 4
у себя ты указал в 12 строке
PHP
1
echo ++$e;
после кода
PHP
1
2
3
4
  if ($e == 5)
    {
     continue;
    }
естественно код доходит до continue и вываливается, переходит на обработку while по новой. т.е недоходит до 12 строки и переменная $e не увеличивается
0
16.02.2012, 23:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2012, 23:29
Помогаю со студенческими работами здесь

ошибка в условных операторах
где здесь ошибка? #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main()...

Подскажите в условных операторах
подскажите пожалуйста Даны три вещественных числа. Вывести на экран: а) те из них, которые...

Нужно ли писать 'this' в операторах
Нужно ли писать 'this' в операторах типа this-&gt;Edit1-&gt;Text = 'qqq' и чем отличается выполнение...

Спор о функциях и операторах
не у всех. раньше точно было. помнится, под ДОС оно работало. но я хоть убей не помню, какой у меня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru