Здравствуйте. Установлена RAD Studio 11.3, у которой отсутствует вкладка BDE и, соответственно, компонент Table, который обеспечивает доступ к таблице средствами механизма BDE.
|
Управляющая конструкция if, цикл for
Begin .. end
В языке программирования Delphi, как и в других языках, существуют программные скобки, показывающие начало и конец какого-либо блока кода. Эти скобки имеют вид
Begin //блок кода end;
Обратите внимание, что после слова Begin точка с запятой не ставится. Эти программные скобки обязательны для каждой процедуры или функции, даже если они содержат только одну команду. Однако эти же скобки часто применяются в управляющих конструкциях или циклах. Циклы, как и управляющие конструкции, работают только с одним оператором (командой). А что, если в этом месте требуется использовать более одного оператора? Тут на помощь приходят эти самые программные скобки. Весь блок кода, сколько бы команд там не было, заключенный между Begin и End воспринимается, как один оператор. Мы не раз будем использовать эти скобки.
Управляющая конструкция if
В предыдущих примерах нам уже приходилось применять эту конструкцию на практике, теперь пришло время познакомиться с ней поближе. Управляющая конструкция if является основной конструкцией, на которой строится логика программы. Простейший синтаксис этой конструкции выглядит так:
if условие then оператор;
Кто знаком с английским языком, уже ухватил суть этой конструкции. На русский язык это выражение можно перевести так:
если условие то оператор;
Другими словами, если какое-то заданное условие верно, то выполняется указанный оператор. Иначе этот оператор не выполняется.
Часто одного оператора бывает недостаточно, тогда используют программные скобки:
if условие then begin Оператор 1; Оператор 2; ... Оператор n; end;
Операторы, заключенные в программные скобки begin .. end воспринимаются, как единый оператор. Иногда и этого бывает недостаточно. Что, если по логике программы требуется выполнить один оператор, если условие верно, и другой, если оно неверно? Тут приходит на помощь расширенная конструкция:
if условие then оператор 1 else оператор2;
Как видно из синтаксиса, если указанное условие истинно, то выполнится оператор 1. Иначе выполнится оператор 2. Еще одно правило, которое следует запомнить: перед словом else точка с запятой не ставится!
Конечно же, с помощью программных скобок можно расширить и эту конструкцию:
if условие then begin Оператор 1; … Оператор n; end else begin Оператор 1; … Оператор n; end;
Сейчас самое время упомянуть о классических стилях программирования. Мы уже говорили, что хороший стиль программирования подразумевает каждый отдельный оператор писать на своей строке, применять отступы. В литературе по программированию часто встречается два классических стиля. Один стиль выглядит так:
if условие then begin Оператор 1; … Оператор n; end;
То есть, слово begin пишется на отдельной строке. Другой стиль выглядит иначе:
if условие then begin Оператор 1; … Оператор n; end;
Оба эти стиля являются классическими, какой из них применять – дело вкуса. На этой лекции будет использоваться второй стиль.
Однако и это еще не все. В предыдущем примере мы рассматривали только одно условие. Если оно верно, то выполнялся один оператор, а если нет – другой. А что, если по логике программы требуется проверить более, чем одно условие? И снова мы можем расширить эту конструкцию. Взгляните на синтаксис:
if условие 1 then оператор 1 else if условие 2 then оператор 2 else оператор 3;
Здесь, если условие 1 будет верно, конструкция выполняет оператор 1 и завершает работу. Если это условие неверно, проверяется условие 2. Если условие 2 верно, то выполняется оператор 2, и конструкция завершает работу. Если же оба условия неверны, выполняется оператор 3. Расширений else if в такую конструкцию можно вставлять сколько угодно.
Давайте теперь проанализируем часть кода из примера "Целые и вещественные типы. Процедуры и функции" .
If Perem2 = 0 then begin Soobshenie; Edit3.Text := '0'; end else begin Perem3 := Delenie(Perem1, Perem2); Edit3.Text := FloatToStr(Perem3); end;
Вам уже должно быть понятно, что если Perem2 действительно равна 0, то выполнится первый блок кода. Иначе будет выполнен второй блок кода.