Всё о сервере, форум!
Основы программирования
ИНФОРМАЦИОННО-РАЗВЛЕКАТЕЛЬНЫЙ ПОРТАЛ

PrR[ Проект SAMP - Romashka [0.3e] ™18+™

Pawn :: Основы скриптинга
Операторы Break и Continue

Данные операторы используются в циклах: for, while, do-while. Оператор break завершает работу цикла, а оператор continue, пропускает оставшееся действие цикла и повторяется снова. Рассмотрим два оператора в действии. У нас есть цикл for из прошлого урока:

new a;
while(a <= 3)
{
a++;
print("Hello, World!");
}


Сделаем так, чтобы в консоль сервера вывелся текст «Hello World!» не 3, а 2 раза. Вспоминаем урок про условные конструкции и создаем такое условие: если a равен 3, то завершаем работу цикла.

new a;
while(a <= 3)
{
if(a == 2)
{
break;
}
a++;
print("Hello, World!");
}


Если вместо оператора break подставить оператор continue результат получится тот же. Вы спросите, в чем же тогда разница, если результат один и тот же. В этом цикле есть один подводный камень. Если вы прочитаете последовательность действий цикла, то поймете в чем причина. А причина вот в чем:

Цикл проверяет последовательно условия, начиная с 0, так как переменная а – равна 0. В первом и во втором случае, условия истинны, так как 0 и 1 меньше 3 и не равны 2. Соответственно в чат выводится 2 раза текст «Hello, World». Что break, что continue они не дают до конца выполнить цикл, то есть все функции, что находятся после самого оператора (инкремент и функцию print).

Для того, чтобы увидеть отличие этих двух операторов нужно инкремент переместить перед условием, вот так:

new a;
while(a <= 3)
{
a++;
if(a == 2)
{
break;
}
print("Hello, World!");
}


В случае с оператором break, в консоль выведется текст «Hello, World!» всего один раз. Так как пропускается одно условие из-за инкремента, где переменная «а» должна быть равна 0. В случае с оператором continue текст выведется три раза, так как оператор пропускает под собой все оставшиеся функции цикла и начинает следующий цикл.



Логин: Пароль:
Забыли пароль?Регистрация
При копировании материала с сайта активная ссылка обязательна!
Сайт управляется SiNG cms © 2010-2015