2 / 3 / 0
Регистрация: 29.01.2013
Сообщений: 39
1

Использование break;

14.12.2013, 02:03. Показов 1681. Ответов 1
Метки нет (Все метки)

Всем привет, объясните пожалуйста, человеческим языком, такой пример из php.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
‹html›
‹head›
‹title›Особенности оператора break/title›
‹/head›
‹body›
‹?php
for ($i=1; $i<=10; $i++)
{
  for ($j=1; $j<=10; $j++)
  {
    $sum++;
    if (($j + ($i-1)*10) == 55) break 2;
  }
}
echo $sum;
?›
‹/body›
‹/html›
Почему, если убираем "break" браузер выдает 95, и откуда 55 то вообще получается. Понял только что , Переменные $I и $J присваиваются значения 1, до 10 идет истина,(TRUE) а после 10 лож(FALSE) и цикл заканчивается. Два плюса, прибавляется по 1. НО как 55 и 95 получается не пойму. Поправьте пожалуйста, если чего не так понял.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2013, 02:03
Ответы с готовыми решениями:

Использование оператора break
Помогите найти ошибку. Надо чтобы счётчик вывелся на экран 50 раз. Вот код: &lt;?php for...

Переменные после break
Выполняю условие саse далее идет break и выход из цикла ! case 'VERSIVO': $sdlt =...

break не завершает цикл
{ if ($aaa) break; $aaa = 'blablabla'; } while ($aaa); Собственно. Этот цикл должен...

Fatal error: Cannot break/continue 1 level
Есть код, но никак не могу разобраться что же не так, если что не пинайте сильно, я в php недавно....

1
142 / 142 / 27
Регистрация: 19.12.2011
Сообщений: 250
14.12.2013, 08:19 2
break
Цитата Сообщение от евгенийй Посмотреть сообщение
откуда 55 то вообще получается
PHP
1
 if (($j + ($i-1)*10) == 55) break 2;
Это условие прерывает оба цикла когда сумма становится равной 55.
Цитата Сообщение от евгенийй Посмотреть сообщение
Почему, если убираем "break" браузер выдает 95
Если убираем break полностью, будет не 95, а 100:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
‹html›
‹head›
‹title›Особенности оператора break/title›
‹/head›
‹body›
‹?php
for ($i=1; $i<=10; $i++)
{
  for ($j=1; $j<=10; $j++)
  {
    $sum++;
  }
}
echo $sum;
?›
‹/body›
‹/html›
А вот если у оператора break убрать 2, или присвоить ему 1 то тогда браузер вернет 95:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
‹html›
‹head›
‹title›Особенности оператора break/title›
‹/head›
‹body›
‹?php
for ($i=1; $i<=10; $i++)
{
  for ($j=1; $j<=10; $j++)
  {
    $sum++;
    if (($j + ($i-1)*10) == 55) break;
    //тоже самое что и
    //if (($j + ($i-1)*10) == 55) break 1;
  }
}
echo $sum;
?›
‹/body›
‹/html›
Вернет 95 потому что когда сумма будет равна 55, сработает break который выйдет из вложенного цикла по переменной $j и суммирование прервется, тогда как цикл по переменной $i продолжит выполняться, и на следующей его итерации он снова зайдет во вложенный цикл, тем самым продолжив суммирование.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2013, 08:19
Помогаю со студенческими работами здесь

Цифра после break во вложенном цикле что означает?
Если у меня двумерно вложенный цикл то break 2 это обращение к внешнему циклу? если он будет...

Ошибка "Fatal error: Cannot break/continue 1 level"
Здравствуйте. При сознании скрипта по изменению значений БД возникли проблемы с загрузкой другой...

Использование функций, использование break
Здравствуйте. Не знал как назвать тему, боялся что, если назову &quot;КАК ЭТО РАБОТАЕТ?&quot; то её удалят....

Использование break
using namespace std; void print_out(int n); int main(){ int n; cout&lt;&lt;&quot;введите число...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru