![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Блок или составной оператор
С помощью фигурных скобок несколько операторов языка (возможно, перемежаемых объявлениями) можно объединить в единую синтаксическую конструкцию, называемую блоком или составным оператором: { оператор_1... оператор_N}
Синтаксически блок воспринимается как единичный оператор и может использоваться всюду в конструкциях, где синтаксис требует одного оператора. Тело цикла, ветви оператора if, как правило, представляются блоком. Приведу достаточно формальный и слегка запутанный пример, где тело процедуры представлено блоком, в котором есть встроенные блоки, задающие тело оператора цикла for и тела ветвей оператора if: /// < summary> /// демонстрация блоков (составных операторов)/// < /summary> public void Block(){ int limit = 100; int x = 120, y = 50; int sum1 =0, sum2=0; for (int i = 0; i< 11; i++) { int step = Math.Abs(limit -x)/10; if (x > limit) {x -= step; y += step; } else {x += step; y -= step; } sum1 += x; sum2 +=y; } //limit = step; //переменная step перестала существовать //limit = i; // переменная i перестала существовать Console.WriteLine(" x= {0}, y= {1}, sum1 ={2}, sum2 = {3}", x, y, sum1, sum2); }Заметьте, здесь в тело основного блока вложен блок, задающий тело цикла, в котором объявлены две локальные переменные - i и step. В свою очередь, в тело цикла вложены блоки, связанные с ветвями then и else оператора if. Закомментированные операторы, стоящие сразу за окончанием цикла, напоминают, что соответствующие локальные переменные, определенные в блоке, перестают существовать по его завершении. Приведенная процедура Block является методом класса Testing, который входит в проект Statements, созданный для работы с примерами этой лекции. Вот описание полей и конструктора класса Testing: /// < summary> /// Класс Testing - тестирующий класс. Представляет набор /// скалярных переменных и методов тестирующих работу /// с операторами, процедурами и функциями C#./// < /summary> public class Testing{ public Testing(string name, int age) { this.age = age; this.name = name; } //поля класса public string name; public int age; private int period; private string status;
|