Структура на програма в C - Част 6 - goto, switch, break и continue клаузи
|
|
- Teodorina Shishmanova
- преди 4 години
- Прегледи:
Препис
1 Структура на програма в C Част 6 - goto, switch, break и continue клаузи Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 21 април 2019 г. И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 1 / 24
2 Съдържание 1 Етикети 2 goto клауза 3 switch клауза 4 break клаузa 5 continue клауза И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 2 / 24
3 Съдържание 1 Етикети 2 goto клауза 3 switch клауза 4 break клаузa 5 continue клауза И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 3 / 24
4 Етикети В C преди всяка клауза може да се постави идентификатор наречен етикет, който служи за идентифициране на клаузата Фигура 1: Синтактична диаграма на етикет И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 4 / 24
5 Етикети Особеност на идентификаторите на етикети е, че те са видими във цялото тяло на функцията, в която са дефинирани int main() { // 'label1', 'label2', 'label3' and 'label4' scopes' start here int a = 10; label1: a = 1; { label2: a = 2; if (a == 2) { label3: a = 3; label4: a = 4; return 0; // 'label1', 'label2', 'label3' and 'label4' scopes' end here Фрагмент 1: Област на видимост на етикети И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 5 / 24
6 Съдържание 1 Етикети 2 goto клауза 3 switch клауза 4 break клаузa 5 continue клауза И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 6 / 24
7 goto клауза goto клаузата е клауза за преход, която указва коя е следващата клауза, която да бъде изпълнена Клаузата започва с ключовата дума goto последвана от етикет, който определя следващата клауза за изпълнение Фигура 2: Синтактична диаграма на goto клауза И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 7 / 24
8 goto клауза. Примери int main() { int a = 10; goto skip; // OK, 'skip' is visible in the whole function body a = a + 1; skip: a = a + 1; printf("%d\n", a); // prints '11' Фрагмент 2: Пример за goto клауза И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 8 / 24
9 goto клауза. Примери int main() { int a = 10; start: a = a + 1; if (a < 12) { goto start; printf("%d\n", a); // prints '12' Фрагмент 3: Пример за goto клауза Използването на goto клаузи не е препоръчително, тъй като почти винаги, могат да бъдат заместени с клаузи за цикли, които по-лесно се разбират от програмиста И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 9 / 24
10 Съдържание 1 Етикети 2 goto клауза 3 switch клауза 4 break клаузa 5 continue клауза И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 10 / 24
11 switch клауза switch клаузата e клауза за избор, която на базата на стойността на целочислен израз, избира между нула или повече клаузи След изпълнение на избраната клауза, изпълнението продължава с клаузата след нея Клаузите, между които се избира, се обозначават със специални етикети, наречени случаи (cases) Случаите съдържат константна целочислена стойност, при която обозначената клауза да бъде изпълнена Фигура 3: Синтактична диаграма за дефиниране на switch клауза И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 11 / 24
12 switch клауза int a = 2; switch (a) { // the value of the expression is 2 case 3: printf("three!\n"); case 2: printf("two!\n"); // this clause is selected case 1: printf("one!\n"); // this clause is executed next printf("go!\n"); // this clause is executed last Фрагмент 4: Пример за switch клауза И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 12 / 24
13 switch клауза Случаи могат да се дефинират само в тялото на switch клаузата Подобно на етикетите, случай може да бъде сложен пред всяка клауза в тялото на switch клаузата Специален случай е случая по подразбиране (default case), който не съдържа стойност. Клаузата обозначена като случай по подразбиране се избира само ако няма съвпадение с други случаи Фигура 4: Синтактична диаграма за дефиниране на случай (case) И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 13 / 24
14 switch клауза int a = 7; switch (a) { // the value of the expression is 7 case 3: printf("three!\n"); case 2: printf("two!\n"); case 1: printf("one!\n"); printf("go!\n"); // no clause is selected, because there is no case that matches Фрагмент 5: Пример за switch клауза без случай по подразбиране И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 14 / 24
15 switch клауза int a = 7; switch (a) { // the value of the expression is 7 case 3: printf("three!\n"); case 2: printf("two!\n"); case 1: printf("one!\n"); default: printf("go!\n"); // this clause is selected, // because there is no other case that matches Фрагмент 6: Пример за switch клауза със случай по подразбиране И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 15 / 24
16 switch клаузa Тялото на switch не може да съдържа дублиращи се случаи int a = 7; switch (a) { case 3: printf("start!\n"); case 3: printf("three!\n"); // ERROR, duplicate case case 2: printf("two!\n"); case 1: printf("one!\n"); default: printf("go!\n") default: printf("finish!\n"); // ERROR, duplicate case Фрагмент 7: Пример за switch клауза със случай по подразбиране И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 16 / 24
17 Съдържание 1 Етикети 2 goto клауза 3 switch клауза 4 break клаузa 5 continue клауза И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 17 / 24
18 break клаузa break клаузата е клауза за преход, която може да бъде използвана само в тялото на цикъл или switch Ако break клаузата се намира в тялото на цикъл, тя оказва следващата клауза за изпълнение да бъде тази след клаузата на цикъла Ако break клаузата се намира в тялото на switch, тя оказва следващата клауза за изпълнение да бъде тази след switch клаузата Фигура 5: Синтактична диаграма за break клауза И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 18 / 24
19 break клаузa int a = 10; while (a) { if (a == 5) { break; // break from the loop a = a - 1; printf("%d\n", a); /* prints '5' */ Фрагмент 8: Пример за break клауза в тяло на while цикъл И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 19 / 24
20 break клаузa int a = 10; switch (a) { case 10: a = a - 1; break; // break from the switch a = a - 1; break; printf("%d\n", a); /* prints '9' */ Фрагмент 9: Пример за break клауза в тяло на switch И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 20 / 24
21 Съдържание 1 Етикети 2 goto клауза 3 switch клауза 4 break клаузa 5 continue клауза И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 21 / 24
22 continue клаузa continue клаузата е клауза за преход, която може да бъде използвана само в тялото на цикъл След изпълнението ѝ следващата клауза е автоматично генерирана празна клауза в края на тялото на цикъла Казано по друг начин, изпълнението на всички клаузи до края на тялото на цикъла се пропуска Фигура 6: Синтактична диаграма за continue клауза И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 22 / 24
23 continue клаузa int a = 4; while (a) { a = a - 1; if (a == 1) { continue; printf("%d\n", a); /* prints '3', '2', '0' */ int a = 4; while (a) { a = a - 1; if (a == 1) { goto end; printf("%d\n", a); end: ; /* prints '3', '2', '0' */ Фрагмент 10: Пример за continue клауза в тяло на while цикъл и еквивалент с goto И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 23 / 24
24 continue клаузa int i = 0; for (i = 0; i < 5; i++) { if (i == 2) { continue; printf("%d\n", i); /* prints '0', '1', '3', '4' */ int i = 0; for (i = 0; i < 5; i++) { if (i == 2) { goto end; printf("%d\n", i); end: ; /* prints '0', '1', '3', '4' */ Фрагмент 11: Пример за continue клауза в тяло на for цикъл и еквивалент с goto И. Георгиев, Х. Иванов, Х. Стефанов (ELSYS)Структура на програма в C ELSYS 24 / 24
Структура на програма в C - Част 7 - масиви, оператор за индексиране, sizeof оператор
Структура на програма в C Част 7 - масиви, оператор за индексиране, sizeof оператор Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София
ПодробноСтруктура на програма в C - Част 9 - низове от символи, C-string
Структура на програма в C Част 9 - низове от символи, C-string Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 15 май 2019 г. И. Георгиев,
ПодробноСтруктура на програма в C - Част 2 - типове, функции
Структура на програма в C Част 2 - типове, функции Иван Георгиев, Христо Иванов, Христо Стефанов Технологично училище "Електронни системи", Технически университет, София 10 март 2019 г. И. Георгиев, Х.
ПодробноC++
Управляващи оператори в C++ Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, 2018/19 г. 18 30 октомври 2018 г. Трифон Трифонов (УП 18/19) Управляващи оператори в C++ 18 30 октомври
ПодробноLush Green
Класове Какво са класовете? Основен инструмент на ООП Средство за дефиниране на абстрактни типове данни Синтактична конструкция, която позволява логическо групиране на данни и операциите над тях Дефиниция
Подробно2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнениет
2. Лексически анализ. Основни понятия и алгоритъм на лексическия анализ. Програмна структура на лексическия анализатор Цел на упражнението Упражнението представя кратко въведение в теорията на лексическия
ПодробноВиртуални функции
Виртуални функции Статично свързване Как компилаторът избира кой метод или коя функция да бъде извикана? Прави се сравнение между формални и фактически параметри и се избира най-точното съвпадение в случай,
ПодробноДефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София
Дефиниране на шаблон Шаблони (Templates) Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 9 март 2005 г. template< class
ПодробноСистеми за управление на версии - Работа с git
Системи за управление на версии Работа с git Иван Георгиев, Христо Иванов, Христо Стефанов Tехнологическо училище "Електронни системи", Технически университет, София 28 февруари 2019 г. И. Георгиев, Х.
ПодробноДинамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София
Динамична памет. Конструктори и деструктори Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.3 16 ноември 2004 г. Пример:
ПодробноLush Green
Конструктори Жизнен цикъл на обект За обекта се заделя памет и се свързва с неговото име Извиква се подходящ конструктор на обекта... (достъп до компоненти на обект, изпълняване на операции) Достига се
ПодробноПрограмиране на Паскал
Поради връзката на С++ с езика С в голяма част от литературата е прието записването С/С++. Това е найизползваният език за програмиране в света, поради което синтаксисът на някои от по-новите езици като
ПодробноАнализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Какво могат и какво не могат компилаторите Съдържание 1. Оптимизационен континуум 2. Някои известни видове оптимизации 2/49 Оптимизационен
ПодробноОбработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София Re
Обработка на грешки Изключения Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision : 1.1 27 февруари 2005 г. 1 #include < cstdio
ПодробноПредефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве
Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision :
ПодробноУказатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23
Указатели. Маисиви, указатели, параметри на функции Калин Георгиев 21 декември 2016 г. Калин Георгиев Увод в програмирането 21 декември 2016 г. 1 / 23 Указатели! Калин Георгиев Увод в програмирането 21
ПодробноСинтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/
Синтаксис за дефиниране на функции Трифон Трифонов Функционално програмиране, спец. Информатика, 2015/16 г. 6 януари 2016 г. Трифон Трифонов (ФП-И 15/16) Синтаксис за дефиниране на функции 6 януари 2016
ПодробноMicrosoft Word - Primer2_4.doc
2.4.) Пример с размяна на приоритетите в крайния автомат в проект drink2 Нека разгледаме същия пример с единствената разлика размяна на приоретите на условията 1 и 2. Тогава финалната диаграма на автомата,
ПодробноВТОРА ГЛАВА
Първи стъпки в SPSS Statistical Package for Social Science (SPSS статистически пакет за социални науки) е компютърна програма, работеща в средата на операционна система Windows, която е специализирана
Подробно4
Наследяване и 4 Трифон Трифонов Обектно-ориентирано програмиране, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 11 май 2017 г. Трифон Трифонов (ООП 16/17) Наследяване и голямата
ПодробноПрограмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5
Програмен език C Пламен Танов Ненко Табаков Мартин Вачовски Технологично училище Електронни системи Технически университет София версия 0.5 Литература Необходими програми Kernighan & Ritchie - The C Programming
Подробно3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението
3. Синтактичен анализ. Граматика на учебен програмен език STUDENT. Извеждане на изречения от правилата на граматиката Цел на упражнението Упражнението представя кратко въведение в синтактичния анализ.
ПодробноУниверситет - библиотека - образование и дигиталният достъп University - Library - Education and Digital Access
Отворете началната страница на сайт на ШУ "Епископ Преславски http://shu.bg/ Натиснете бутона Университетска библиотека (оградената с червено зона) От основното хоризонтално меню на библиотечния сайт натиснете
ПодробноЛабораторно упражнение 6 Тема: Оператори за цикли в езика C++. Реализиране на циклични алгоритми I. Цел на лабораторното упражнение Да се затвърдят зн
Лабораторно упражние 6 Тема: Оператори за цикли в езика C++. Реализира на циклични алгоритми I. Цел на лабораторното упражние Да се затвърдят знанията на студентите за организацията и синтаксиса на програми
ПодробноСериализация Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23
Калин Георгиев 13 май 2016 г. Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 1 / 23 f «data; f» data; Калин Георгиев Обектно ориентирано програмиране 13 май 2016 г. 2 / 23 Първо изискване:
ПодробноСЪЗДАВАНЕ НА СЪДЪРЖАНИЕ, ИНДЕКСЕН УКАЗАТЕЛ И ВМЪКВАНЕ НА ПОЛЕТА I. СЪЗДАВАНЕ НА СЪДЪРЖАНИЕ Съдържанието се създава по съществуващ в Word форматен стил
СЪЗДАВАНЕ НА СЪДЪРЖАНИЕ, ИНДЕКСЕН УКАЗАТЕЛ И ВМЪКВАНЕ НА ПОЛЕТА I. СЪЗДАВАНЕ НА СЪДЪРЖАНИЕ Съдържанието се създава по съществуващ в Word форматен стил или по създаден от вас потребителски стил. По подразбиране
ПодробноРекурсия Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. 4 януари
Рекурсия Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. 4 януари 2017 г. Трифон Трифонов (УП 16/17) Рекурсия 21.12.16
ПодробноДинамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Тр
Динамична памет Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. Трифон Трифонов (УП 16/17) Динамична памет 21 декември
ПодробноЛекция Класификация с линейна обучаваща машина Обучаващата машина може да бъде дефинирана като устройство, чиито действия са повлияни от миналия опит
Лекция Класификация с линейна обучаваща машина Обучаващата машина може да бъде дефинирана като устройство, чиито действия са повлияни от миналия опит [1]. Линейната обучаваща машина (ЛОМ) е стравнително
ПодробноЕВРОПЕЙСКИ СЪЮЗ Европейки фонд за регионално развитие Инвестираме във вашето бъдеще ОПЕРАТИВНА ПРОГРАМА Развитие на конкурентоспособността на българск
BG161PO003-1.1.06-0022-C0001 Ръководство за работа със системата Този документ е създаден с финансовата подкрепа на Оперативна програма на българската икономика 2007-2013, съфинансирана от Европейския
ПодробноЦИРКУЛЯРНА ПОЩА (MAIL MERGE)
1 M AILINGS MAIL M ERGE Възможността за сливане на документи (Mail Merge) обединява главен документ (съдържание на писмото) със списък на получатели (таблица на Word, Excel или Access), за да генерира
ПодробноАнализ и оптимизация на софтуерни приложения
Анализ и оптимизация на софтуерни приложения Александър Пенев Васил Василев Съдържание 1. Какво е векторизация? 2. Примери 3. на цикли 4. Масиви от структури или структури от масиви 5. на при различни
ПодробноAddress Book
Address Book & Messaging Боян Лазов Address Book Address Book - intro База данни, съдържаща контакти на хора и друга лична информация Идеята е тази информация да бъде споделена и достъпна между приложенията
Подробно2. Наследяване в C++ Съдържание Съдържание Наследяване (Rev: 1.2) Любомир Чорбаджиев 1 1 февруари 2007 г. 1 Наследяване 1 2
2. Съдържание Съдържание Наследяване (Rev: 1.2) Любомир Чорбаджиев 1 lchorbadjiev@elsys-bg.org 1 февруари 2007 г. 1 Наследяване 1 2 2 3 Полиморфизъм 9 1. Наследяване Наследяване UML UML unified modeling
ПодробноКакво трябва да знаете, за да осигурите безопасна употреба на перилните и почистващи препарати вкъщи На етикетите на почистващите продукти за дома ско
Какво трябва да знаете, за да осигурите безопасна употреба на перилните и почистващи препарати вкъщи На етикетите на почистващите продукти за дома скоро ще се появи нова предупредителна информация. Някои
ПодробноПроф
Утвърдил:.. / доц. д-р Е. Великова / Утвърден от Факултетен съвет с протокол... /... СОФИЙСКИ УНИВЕРСИТЕТ СВ. КЛИМЕНТ ОХРИДСКИ Факултет по Математика и Информатика Специалност: Компютърни науки М И К 0
Подробноdoll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката н
doll Механична кукла Механичните кукли автоматично повтарят предварително зададена последователност от движения. В Япония има традиции в изработката на механични кукли, датиращи от древни времена. Движенията
ПодробноИНТЕРНЕТ ПРОГРАМИРАНЕ - JAVA JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври
JAVA ОБЕКТИ Ненко Табаков Пламен Танов Технологическо училище Електронни системи Технически университет София 9 октомври 2008 JAVA ОБЕКТИ Забележка: Тази лекция е адаптация на лекция от курса: 6.092 Java
ПодробноMicrosoft Word - zada4a 1.doc
Задача 1: Въвеждане на данни и дефиниране на променливи Съставя се таблица, отразяваща резултатите от пробна мини анкета с 15 респондента (студенти), съдържаща следните променливи (въпроси) и респ. значения
Подробно105SL_Quick_Reference_Guide
05SLБързо ръководство Използвайте ръководството в ежедневната работа на принтера. За по-подробна информация, вижте Ръководство на потребителя. Външен изглед Фигура Изглед на Принтер Отпред Отзад 3 4 Панел
ПодробноPowerPoint Presentation
FREE PPT TEMPLATES ЕНСИС МОБИЛЕН INSERT THE TITLE СКЕНЕР OF YOUR PRESENTATION HERE СЛЕДЕНЕТО НА НАЛИЧНОСТИ НИКОГА НЕ Е БИЛО ПО-ЛЕСНO! www.nsys-bg.com www.nsys.bg Free PPT _Click to add title ZEBRA KIT
Подробно