Читаем Язык программирования Euphoria. Справочное руководство полностью

Если бы укороченная проверка была применена здесь, мы бы получили x равным 1, а интерпретатор даже не взглянул бы на {1,2,3,4,5}. Это было бы неправильным решением. Укороченная проверка может использоваться в командах if/elsif/while, поскольку там нас заботит лишь общий результат в виде да/нет, а этим командам только и нужен именно атом, как результат вычисления выражения для проверяемого условия.


2.5.5 команда for (для, от)

С помощью команды for устанавливается специальный цикл вычислений с управляющей переменной цикла, которая пробегает ряд значений, начиная от первой заданной величины, вверх или вниз до некоторой последней величины, то есть,


for i = 1 to 10 do

? i -- ? - это короткая форма для print()

end for


-- дробные числа также разрешены

for i = 10.0 to 20.5 by 0.3 do

for j = 20 to 10 by -2 do -- счёт вниз

? {i, j}

end for

end for


Переменная цикла объявляется автоматически и существует до конца циклических вычислений, предусмотренных данным циклом. Вне тела команды цикла переменная цикла не имеет величины и даже не может считаться объявленной. Если вам необходима её последняя величина, присвойте её величину некоторой заранее объявленной обычной переменной перед выходом из цикла. Компилятор не позволяет никаких присваиваний переменной цикла. Начальная величина, конечная величина и величина шага все должны быть атомами. Если величина шага не указана, считается, что шаг равен +1. Конечная величина и величина шага устанавливаются при входе в цикл и во время цикла никак не могут быть изменены. См. также о сцене переменной цикла в разделе 2.4.2 Сцена (область видимости).


2.5.6 команда return (выдать, вернуться)

Команда return приводит к немедленному выходу из подпрограммы. Если подпрограмма является функцией или типом, в команде должна быть предусмотрена выдаваемая такой подпрограммой величина. То есть,


return


return {50, "FRED", {}}


2.5.7 команда exit (выйти)

Команда exit может использоваться в цикле while или в цикле for. Она вызывает немедленное прерывание цикла с передачей управления первой команде, следующей после тела цикла. То есть,


for i = 1 to 100 do

if a[i] = x then

location = i

exit

end if

end for


Очень часто также можно видеть следующий вариант использования этой команды:


constant TRUE = 1


while TRUE do

...

if some_condition then

exit

end if

...

end while


То есть, это "бесконечный" цикл while, который прерывается командой exit в некоторой характерной точке в теле цикла.

Примечания о производительности: В Euphoria этот бесконечный тип цикла оптимизирован. Во время прогона программы никакие повторные проверки истинности выражения в команде while уже не выполняются, а совершается простой безусловный переход от end while обратно к первой команде внутри тела цикла. Если вам случится попасть в настоящий бесконечный цикл с интерпретатором ex.exe, когда не выполняются операции ввода/вывода, знайте, что простого пути остановить этот цикл не существует. Вы должны будете одновременно нажать клавиши Control-Alt-Delete, чтобы перезагрузиться под DOS, или прервать свой сеанс DOS под Windows. Если программа имела файлы, открытые на запись, будет полезно после перезагрузки запустить scandisk, чтобы проверить исправность своей файловой системы. Только если ваша программа ожидает ввода с клавиатуры, комбинация Control-c может прервать её исполнение (если вами не была выдана команда allow_break(0)).

С интерпретаторами exw.exe или exu комбинация control-c всегда работает и немедленно прервёт вашу программу, если у вас есть в этом необходимость.


2.6 Специальные команды высшего уровня

Перед тем, как исполнять любую из ваших команд, интерфейсный блок интерпретатора Euphoria быстро читает всю вашу программу полностью от начала и до конца. Все ваши команды проверяются синтаксически и преобразуются в низкоуровневый код на промежуточном языке (IL). Затем исполнительный блок интерпретатора немедленно приступает к исполнению кода IL, размещённого в оперативной памяти. Биндер/шроудер записывает код IL в файл .il на диск для последующих немедленных исполнений с отдельным исполнительным блоком. Транслятор преобразует код IL в код C и записывает программу C на диск. Во всех этих трёх методах преобразования текста исходного кода Euphoria используется один и тот же интерфейсный блок (написанный на Euphoria).

Перейти на страницу:

Все книги серии Euphoria

Язык программирования Euphoria. Справочное руководство
Язык программирования Euphoria. Справочное руководство

Euphoria (юфо'ри, также рус. эйфори'я, ра'дость) — язык программирования, созданный Робертом Крейгом (Rapid Deployment Software) в Канаде, Торонто. Название Euphoria — это акроним для «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]

Коллектив авторов

Программирование, программы, базы данных

Похожие книги

Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество советов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам.Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Скотт Майерс , Скотт Мейерс

Программирование, программы, базы данных / Программирование / Книги по IT