Показать сообщение отдельно
Старый 22.10.2007, 08:59   #1
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Tips & tricks (Трюки кодинга)

Давайте будем делиться в этом разделе различными хитростями и трюками программирования на MP.

Нестандартное использование оператора repeat
Когда я только начинал кодить на MP меня очень тяготило отсутствие оператора switch, который есть в C. Поэтому, когда нужно было делать множество проверок, то выглядело это так:

if ... then ...
if ... then ...
if ... then ...

Некрасиво, правда? А если таких проверок не один десяток, а то и сотня? Основной недостаток такой конструкции - невозможность отменить дальнейшие проверки если результат уже найден. Тут бы мог спасти оператор goto, но его в MP тоже нет. Но решение этой проблемы есть. Посмотрите нижеприведенный код и вам всё станет ясно:

repeat
if ... then begin ....; break; end;
if ... then begin ....; break; end;
if ... then begin ....; break; end;
until true;

C помощью сочетания repeat until true и break можно добиться и некоего подобия оператора goto т.е. условного/безусловного перехода на метку.

.....
..... // Какой-то код
.....
repeat
.....
..... // Код
.....
if ... then break; // Переход на метку
.....
..... // Код
.....
until true;
..... // Тут типа метка
.....
(Offline)
 
Ответить с цитированием