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

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

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

Кто хочет стать моим партнером в R-MONEY.RU жмите на кнопку на рисунке
Кто хочет своевременно узнавать о выходе новой статьи на сайте должен подписаться.

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

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

Дистанционное обучение
Обучение программированию
Проектирование информационных систем
 

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

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