Другие команды
Goto | End | Swap |
Goto <label>
Описание
Эта команда используется для перевода программы прямо к позиции метки <label>. Будьте осторожны при использовании этой функции, так как некорректное использование может вызвать сбой программы...Синтаксис
Примечание: Чтобы безопасно выйти из цикла, вы всегда должны использовать Break вместо Goto и никогда не использовать его внутри блока Select / EndSelect (если у вас нет возможности правильно управлять стеком).
End [ExitCode]
Описание
Корректно заканчивает выполнение программы. Можно задать необязательный параметр 'ExitCode', если программа должна возвратить код ошибки (широко используется в консольных программах).Синтаксис
'ExitCode' может в дальнейшем использоваться например с командой ProgramExitCode().
Swap <expression>, <expression>
Описание
Меняет местами значения двух выражений <expression> оптимизированным способом. Каждое выражение <expression> может быть переменной, элементом Массива, элементом Связного списка или элементом Хеш-карты в любой комбинации, но при этом оба <expression> должны быть одного и того же стандартного типа поддерживаемого PureBasic, или Структурного типа определяемого пользователем.
Пример: Обмен строк
Hello$ = "Hello" World$ = "World" Swap Hello$, World$ Debug Hello$+" "+World$
Пример: Обмен значений элементов многомерных массивов
Dim Array1(5, 5) Dim Array2(5, 5) Array1(2, 2) = 10 ; Устанавливаем начальное содержимое Array2(3, 3) = 20 Debug Array1(2, 2) ; Отобразит 10 Debug Array2(3, 3) ; Отобразит 20 Swap Array1(2, 2) , Array2(3, 3) ; Поменяем местами значения 2-х элементов массива Debug "Содержимое массива после обмена:" Debug Array1(2, 2) ; Отобразит 20 Debug Array2(3, 3) ; Отобразит 10
Пример: Использование Swap для передачи значения по разным объектам
; Инициализируем переменные, массив, Связный список и Хеш-карту. Всё одного типа, который задан по умолчанию. Define a, b Dim Array1(4, 4) NewList List1() NewMap Map1() ; Присваиваем им значения a = 1 b = 2 Array1(1, 1) = 3 AddElement(List1()) ; добавим элемент в Связный список и он становится текущим. List1()=4 ; присваиваем значение 4 текущему элементу Связного списка AddMapElement(Map1(), "ключ") ; добавим элемент в Хеш-карту и он становится текущим. Map1()=5 ; присваиваем значение 5 текущему элементу Хеш-карты Debug a ; 1 Debug b ; 2 Debug Array1(1, 1) ; 3 Debug List1() ; 4 Debug Map1() ; 5 Swap b,a ; меняем значения между 'b' и 'a' Swap Array1(1, 1), b ; меняем значения между элементом Массива и 'b' Swap List1() , Array1(1, 1) ; меняем значения между текущим элементом Связного списка и элементом Массива Swap Map1(), List1() ; меняем значения между текущим элементом Хеш-карты и текущим элементом Связного списка Debug Map1() ; Отобразит 1, так как значение передано по цепочке из переменной 'a' в текущий элемент Хеш-карты Map1()