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

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

Онлайн среда выполнения кода  языка программирования  Crystal

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

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

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

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

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

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

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

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

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

Значениями falsey могут быть только nilfalse и нулевые указатели (указатели с нулевым адресом ячейки памяти). Все остальные значения 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

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

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

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

Управляющая конструкция 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?

Операторы языка программирования Crystal - условный оператор 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
  9. Эта конструкция соответствует следующему условному оператору if.
  10. tmp = expression
  11. if value1 === tmp || value2 === tmp
  12.   do_something
  13. elsif value3 === tmp
  14.   do_something_else
  15. else
  16.   do_another_thing
  17. end

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

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

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

Оператор цикла 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 - jператоры цикла

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

Изучение управляющих конструкций языка программирования  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, реализующие алгоритмические структуры позволяют запрограммировать любые алгоритмы решения любых задач.

Кто хочет стать моим партнером в R-MONEY.RU жмите на рисунок
Дистанционное обучение
Обучение программированию
Проектирование информационных систем
 

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

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