Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Блок або складовий оператор






За допомогою фігурних дужок кілька операторів мови (можливо, що перемежовують оголошеннями) можна об'єднати в єдину синтаксичну конструкцію, названу блоком або складовим оператором:

{ оператор_1... оператор_N}

У мовах програмування немає загальноприйнятої норми для використання символу крапки з комою при записі послідовності операторів. Є три різних підходи і їхня варіація. Категоричні супротивники крапок з комою вважають, що кожен оператор повинний записуватися в окремому рядку (для довгих операторів визначаються правила перенесення). У цьому випадку крапки з комою (або інші аналогічні роздільники) не потрібні. Гарячі шанувальники крапок з комою вважають, що крапкою з комою повинний кінчатися кожен оператор. У результаті в операторі if перед else з'являється крапка з комою. Треті думають, що крапка з комою відіграє роль роздільника операторів, тому перед else її не повинно бути.

Синтаксично блок сприймається як одиничний оператор і може використатися всюди в конструкціях, де синтаксис вимагає одного оператора. Тіло циклу, галузі оператора if, як правило, представляються блоком. Приведу досить формальний і злегка заплутаний приклад, де тіло процедури представлене блоком, у якому є вбудовані блоки, що задають тіло оператора циклу for і тіла галузей оператора if:

/// < summary> /// демонстрація блоків (складових операторів)/// < /summary> public void Block(){ int limit = 100; int x = 120, у = 50; int sum1 =0, sum2=0; for (int i = 0; i< 11; i++) { int step = Math.Abs(limit -х)/10; if (x > limit) {x -= step; у += step; } else {x += step; у -= 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; }

Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.026 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал