КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Функции. Операторы ветвления и цикла
Continue Break For While If Операторы ветвления и цикла if (выражение) оператор1; else оператор2; Если выражение истинно, выполняется оператор1, иначе выполняется оператор2. Секция else необязательна. while (выражение) оператор; Цикл с предусловием. Оператор выполняется, пока выражение истинно. Есть также цикл с постусловием: do оператор while (выражение); Цикл for выглядит следующим образом и в общем случае не является циклом с заданным числом повторений (в отличие, например, от ЯВУ Pascal): for (инициализация; условие_выполнения_цикла; изменение_переменых) оператор; Например, for (x=0;x<10;x++) a+=f(x); Оператор break используют для выхода из циклов for / while и ветвления switch. Для вложенных циклов выход осуществляется на один уровень. Данный оператор вызывает принудительный переход к следующей итерации цикла. Например, требуется сложить все целые числа от a до b не кратные трём. for(int i=a, s=0; i<b; i++) { if (i%3==0) continue; //переходим к следующему значению i s+=i; } switch Структура записи оператора switch следующая. switch(переменная) { case значение1: группа_операторов1; break; case значение2: группа_операторов2; break; … default: группа_операторов_по_умолчанию; } При равенстве переменной «значению1», выполняется соответствующая группа операторов, которая заканчивается словом break. При несовпадении ни с одним из значений, выполняется секция default. Формально, секции «case …:» являются метками, на которые осуществляется переход при совпадении значений. Именно поэтому после перехода на метку выполняются все команды до конца секции switch-case либо до оператора break. Этим можно пользоваться для уменьшения дублирования кода. Например, пусть задано условие: если переменная x равна 0, то вызвать функцию f1(), а если равно 2, то вызвать f1() и f2(). switch(x) { case 2: f2(); //не используем break, т.к. требуется выполнение и следующей команды. case 0: f1(); //не используем break, т.к. дошли до конца. } Объявляются следующим образом: возвращаемый_тип имя_функции(список_формальных_параметров) { ТЕЛО ФУНКЦИИ } список формальных параметров представляет собой перечисление через запятую пар «тип данного» – «имя переменной» (имя переменной может отсутствовать). Для функции, которая не возвращает значения (аналог процедуры в Паскале), предусмотрен тип данных void. Функции, возвращающие значение, должны обязательно содержать оператор "return возвращаемые_данные". На данном операторе происходит возврат из функции независимо от того, есть ли дальше другие операторы. Пример. int sum(int x, int y) { return x+y; } Для функций типа void можно использовать return без аргументов для явного выхода из функции в требуемом месте. Описание функции обязательно должно быть раньше (выше) в тексте программы, чем любой её вызов. Функция может быть описана без реализации (упреждающее описание). В этом случае тело функции не записывают, а после описания её заголовка ставят «;». Также при упреждающем описании могут не указываться имена переменных. Реализация функции должна обязательно присутствовать далее в тексте программы. Пример: void myfunc(int, int); // здесь продолжение кода с вызовом myfunc void myfunc(int x, int y) {…} Допустимо явно не указывать параметры функции, для этого используется многоточие в конце списка параметров. В этом случае компилятор контролирует только явно указанные аргументы. Никаких специальных средств по работе с неявно указанными параметрами функции языки «С» и «С++» не предоставляют, но известно, что переданные фактические параметры располагаются в памяти последовательно после явно указанных. Языки «С» и «С++» разрешают использование рекурсии, то есть вызова функцией самой себя. Пример (функция вычисления факториала): long fact(int k) { if (k<0) return 0; if (k==0) return 1; return k*fact(k-1); } Язык «С++» предоставляет дополнительные возможности: – перегрузка функций – несколько функций могут иметь одно имя и тип, но разный набор формальных аргументов, в этом случае компилятор сам выбирает подходящую функцию по фактическим аргументам; – параметры по умолчанию; – подставляемые (inline) функции.
Дата добавления: 2014-01-05; Просмотров: 492; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |