Просмотров-845
0

Управляющие конструкции языка программирования Crystal

Изучение языка программирования Crysal Управляющие конструкции

Методика изучения управляющих конструкций в онлайн среде выполнения кода  Crystal

Хорошо известно, любой язык в общем и язык программирования в частности — это синтаксис и семантика. Управляющие конструкции или операторы языка программирования это основа его семантики. Известно, что семантика языка программирования — — это правила придания смысла синтаксически правильным программам. В конечном счете эти правила определяют ту последовательность действий вычислительной машины, которую она должна выполнить, работая по данной программе. Это в полной мере относится и к языку программирования Crystal.

В соответствие с теоремой Дейкстры операторы языка программирования позволяют реализовать любой алгоритм, любой сложности на языке программирования. Это относится, в том числе, и к языку программирования Crystal.

В предыдущей статье «Простые типы данных языка программирования Crystal» мы писали, изучение языка программирования Crystal на начальном этапе целесообразно осуществлять с помощью онлайн среды программирования.

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

Использование управляющих конструкций в программах

В любом современном языке программирования имеется три встроенных оператора(управляющей конструкции): присваивание, условный оператор и оператор цикла, реализующих программно базовые алгоритмические структуры — линейную, ветвление и повторение, соответственно. Эти операторы языка программирования Crystal являются основой его семантики и, по своей сути, во многом схожи с аналогичными операторами языков программирования C, С++, С# и други.

Присваивание выполняется путем пересылки данных из одной ячейки(регистра) в другую. В программе оператор присваивания обозначается с помощью литерала присваивания (=).

Например, присваивание локальной переменной local = 1, присваивание глобальной переменной $global = 4. В языке Crystal допускается множественное присваивание нескольким переменным одновременно, разделяя их и присваемые выражения запятой. Например,
name, age = «Crystal», 71.

Прежде чем перейти к изучению управляющих конструкций, необходимо рассмотреть, что такое значения truthy и falsey:

  • truthy — это значение, приводимое к логическому true операторами if, unless, while или until,
  • falsey — значение, приводимое к логическому false.

Значениями falsey могут быть только nil, false и нулевые указатели (указатели с нулевым адресом ячейки памяти). Все остальные значения truthy.

Условный оператор языка программирования Crystal if

В языке Crystal для программной реализации базовой алгоритмической структуры ветвление применяется условный оператор if, который имеет различные формы представления(записи и семантики).

Основная форма условного оператора if имеет следующий синтаксис.

  1. if bool_condition
  2. x = y
  3. elsif other_ bool _condition
  4. x=z
  5. else
  6. puts “Ни одно условие не выполняется”
  7. end

Работа оператора заключается в следующем — if выполняет ветку then (x = y) если условие truthy (сводится к true), затем проверяется следующее условие и if выполняет свою ветку then (x=z) если второе условие truthy (сводится к true), в противном случае выполняет ветку else. Любая ветка, кроме первой может быть опущена.

Другие формы записи условного оператора if:
-сокращённая запись: a = 2 if bool_condition;

if возвращает значение последнего выражения, вычисленного в каждой из его ветвей:

  1. a = if 2 > 1
  2. 3
  3. else
  4. 4
  5. end

Тернарный оператор if позволяет записывать условия компактнее:

a = 1 > 2 ? 3 : 4

Условный оператор if языка программирования Crystal

При выполнении условного оператора могут возникать ошибки. Например.

Ошибки условного оператора

Управляющая конструкция unless

Оператор unless выполняет ветку then если условие falsey, в противном случае выполняет ветку else. Можно сказать, он действует как if, но наоборот:

  1. unless bool _condition
  2. then_expression
  3. else
  4. else_expression
  5. end

То же, что и:

  1. if bool _condition
  2. else_expression
  3. else
  4. then_expression
  5. end

 Этот же оператор можно записать как суффикс close_door unless door_closed?

Условный оператор unless

Выбор из большого количества вариантов целесообразно выполнять с помощью управляющей конструкции case.

Управляющее выражение case сопоставляет одно значение с рядом других значений и выполняет оператор при совпадении.

  1. case expression
  2. when value1, value2
  3. do_something
  4. when value3
  5. do_something_else
  6. else
  7. do_another_thing
  8. end

Эта конструкция соответствует следующему условному оператору if.

  1. tmp = expression
  2. if value1 === tmp || value2 === tmp
  3. do_something
  4. elsif value3 === tmp
  5. do_something_else
  6. else
  7. do_another_thing
  8. end

Обратите внимание, что литерал === используется для сравнения, аналогичного сравнению в операторе case.

Операторы языка программирования Crystal - выбор альтернатив case

Условные операторы языка программирования Crystal.

Оператор цикла while

Синтаксис оператора while имеет вид

  1. while bool_condition
  2. x=23*y+b
  3. z=5/x+c
  4. bool_condition =some #обязательное изменение условия
  5. end

Основу семантики оператора while составляет утверждение о том, что при выполнении оператора, прежде всего, проверяется условие bool_condition, и если оно имеет значение truthy, то выполняется тело оператора и так до тех пор, пока условие не станет равным falsey, иначе бесконечный цикл.

Чтобы прервать выполнение цикла  while, нужно воспользоваться оператором break, например:

  1. a = 2
  2. while (a += 1) < 20
  3. if a == 10
  4. puts a
  5. break
  6. end
  7. end

Чтобы перейти к следующей итерации цикла while, необходимо применить оператор next. После получения инструкции next будет проверено условие while, и если оно truthy, будет выполнено тело цикла.

  1. a = 1
  2. while a < 5
  3. a += 1
  4. if a == 3
  5. next
  6. end
  7. puts a
  8. end

Именно поэтому код в теле может никогда не выполниться. Код в теле выполняется до тех пор, пока условие truthy.

Оператор цикла until

Оператор цикла until аналогичен оператору while, но с противоположным условием. Синтаксис оператора имеет вид.

  1. until bool _condition
  2. do_this
  3. end

 То же, что и:

  1. while bool _condition
  2. do_this
  3. end

Аналогично, основу семантики оператора until составляет утверждение о том, что при выполнении также проверяется условие bool_condition, и если оно имеет значение falsey, то выполняется тело оператора и так до тех пор, пока условие не станет равным, truthy, иначе бесконечный цикл.

В теле until можно также использовать инструкции break и next.

Операторы цикла языка программирования Crystal

Примеры использования операторов в программе

Изучение управляющих конструкций языка программирования  Crystal следует закреплять путем выполнения простейших задач. Такими задачами могут быть.

Найти суммы натурального ряда, четных и нечетных чисел от 0 до N.

  1. i,n= 0,100
  2. si,sc,sn = 0,0,0
  3. puts «Результат цикла while:»
  4. while i<n
  5. si=si+i
  6.  sc=sc+2*i
  7.   sn=sn+2*i+1
  8.   if i<5
  9.      puts «Итерация: i= #{i}, si= #{si},sc=#{sc},sn=#{sn}»
  10.   end
  11. i=i+1     #обязательное изменение условия
  12. end
  13.  puts «Суммы: n= #{n}, si= #{si},sc=#{sc},sn=#{sn}»

Следующая задача. Выполнить деление чисел из натурального ряда с проверкой деления на ноль.

  1. i,n= 0,10
  2.   puts
  3. puts «Результат цикла until:»
  4.   zn=-12
  5. until i>n
  6.    zn=zn+3
  7.    if zn!=0
  8.       di=3*i/zn
  9.    else
  10.      zn=zn+3
  11.       puts «Знаменатель равен нулю»
  12.    end
  13.    puts «Итерация #{i},di=#{di},z=#{zn}»
  14.   i=i+1     #обязательное изменение условия
  15. end
Примеры применения операторов языка программирования Crystal

Заключение

Операторы языка программирования Crystal это основа его семантики и возможностей программирования алгоритмов решения различных прикладных задач.

Программная реализация базовых алгоритмических структур в языке программирования Crystal позволяет применять его в структурных методах создания программного обеспечения.

Операторы языка программирования Crystal, реализующие базовые алгоритмические структуры, позволяют запрограммировать любые алгоритмы решения любых задач.

Статьи по теме

Простые типы данных
языка программирования Crystal
Язык программирования Crystal Процедурное программирование
на языке Crystal
Процедурное программирование на языке Crystal
Структурированные
типы данных языка
программирования Crystal
Структурированные типы данных Объектно — ориентированное
программирование на языке Crystal
Объектно ориентированное программирование

Связанные материалы

Внимание! Кто хочет своевременно узнавать о выходе новой статьи на сайте должен подписаться.

ПОДПИСКА НА РАССЫЛКУ

Статьи об онлайн курсах обучения

Дистанционное обучение
Обучение программированию
Проектирование информационных систем
 
Реклама. Информация о рекламодателе по ссылкам в статье.

brasm

Пенсионер с 33 - летним педагогическим стажем

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *