Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Правило #3, про операторные скобочки
Операторные скобочки (это то, что ограничивает составной оператор), относящиеся к одному блоку, должны располагаться следующим образом. Открывающая скобочка должна находиться на той же строчке, что и следующий до блока оператор, а закрывающая должна находиться строго на одной линии по вертикали с началом оператора, предшествующем данному составному. НЕправильно:
for (;;) { printf(" тра-ля-ля\n"); };
for j: =0 to N do begin WriteLn('тра-ля-ля'); end;
Правильно:
for (;;) { printf(" тра-ля-ля\n"); };
for j: =0 to N do begin WriteLn('тра-ля-ля'); end;
Допускается такой вариант:
for (;;) { printf(" тра-ля-ля\n"); };
for j: =0 to N do begin WriteLn('тра-ля-ля'); end;
Предыдущий, однако, предпочтительней, так как никакого смысла в размещении открывающей операторной скобки на одной линии по вертикали с закрывающей, кроме удлинения исходного текста в вертикальном направлении, нет. Последний вариант следует использовать для подпрограмм, то бишь процедур и функций: НЕправильно:
int my_favorite_function(void) { return 1; }
function MyFavoriteFunction: boolean; begin MyFavoriteFunction: = TRUE; end;
Правильно:
int my_favorite_function(void) { return 1; }
function MyFavoriteFunction: boolean; begin MyFavoriteFunction: = TRUE; end;
Правила 1-2-3 соблюдаются почти АВТОМАТИЧЕСКИ, если набирать текст программы не так, как это делает человек, 2 дня назад впервые увидевший клавиатуру, а так, как сейчас будет сказано. Начинающие обычно набирают текст последовательно, и поэтому (ИМЕННО ПОЭТОМУ!!!) а) он у них получается кривой и б) они постоянно забывают закрыть блок или закрывают его не там, где надо. Для того, чтобы избежать трат времени на исправление последствий такой забывчивости, текст программы нужно набирать НЕпоследовательно. К этому располагает сама грамматика и синтаксис почти любого языка программирования. Всегда есть ПАРНЫЕ символы, скобочки там всевозможные, составные операторы опять же. Если написали begin, то почему бы сразу не написать end? Если набрали открывающую скобочку, то почему бы сразу не набрать закрывающую, а потом не вернуться назад? Сейчас на примере распишу, как надо набирать. for (i = 0; i < N; i++) { /* тело цикла */ } Вот цикл. Набираем так: набрали " for", пробел, нажали левый Shift, набрали " (", сразу (!!!) за ней ")", Shift отпустили, пробел, опять нажали Shift, набрали " {" и опять сразу (!!!) " }", она ведь тут же, рядом на клавиатуре, теперь стрелочка назад и Enter. Если так набирать, то Вы просто не сможете нарушить правило #3. Далее: возвращаемся внутрь круглых скобочек и только теперь начинаем думать, а по какой же переменной мы хотели сделать цикл. Ставим два раза точку с запятой (можно и раньше было поставить, когда скобочки ставили) и вписываем чего надо. Дальше - End, Enter, TAB (правило #2!!!) и начинаем думать, что же мы хотели написать в теле цикла. Если наберете таким образом несколько конструкций типа for, while, repeat, if и прочая и прочая, то Вы будете потом недоумевать, а как еще-то можно набирать??? В противном случае Вы так и будете писать программы, которые невозможно читать, так и будете безнадежно путаться в скобочках и т.д. и т.п....
|