Файл: Инструкция безусловного перехода Инструкции условного перехода Инструкции циклов Обработка исключительных ситуаций.pptx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.12.2023

Просмотров: 96

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Тема 4. Управление программным потоком

Инструкции управления программным потокомИнструкция безусловного переходаИнструкции условного переходаИнструкции цикловОбработка исключительных ситуацийИнструкция условного ветвления if else используется для разветвления процесса вычислений на два направленияif (условие) инструкция_1; [else инструкция_2;]Сначала вычисляется логическое условие в скобках. Если условие истинно, то выполняется следующая инструкция или блок кода. Если условие ложно, то выполняется инструкция или блок кода, следующий за else.if(условие) //принимает значение true или false { блок кода } else { блок кода }Блок выполняется если условие равно «true»Блок выполняется если условие равно «false»Одна из ветвей может отсутствовать: как правило, опускают вторую ветвь с ключевым словом else.if(условие) //принимает значение true или false { блок кода } Блок выполняется если условие равно «true»Если условие равно «false» управление передается на инструкцию следующую за if

Блок схемы для условного перехода

инструкция1truefalseусловиеинструкция2truefalseинструкцияусловиеполная форма ветвлениянеполная форма ветвления

Примеры инструкции if-else

Примеры кодаint a; int b; ... int c; if(a >= b) c = a; else c = b; int d = c;int a; int b; ... if(a >= b) { a /= 2; //a=a/2 b *= 2; //b=b*2 } else { a *= 2; //a=a*2 b /= 2; //b=b/2 }

Примеры инструкции if

Примеры кодаint a; int b; ... if(a < b) { int c = a; a = b; b = c; } int d = a;bool a; bool b; ... bool c = false; if(a == true && b == false || b == true && a == false) c = true; bool d = c;

Вложение if-else-if

С помощью ключевых слов if и else можно составлять так называемые if-else-if конструкции, которые могут осуществить проверку сразу нескольких условий.Синтаксис вложенных инструкцийif(условие 1) инструкция 1; else if(условие 2) инструкция 2; else if(условие 3) инструкция 3; else инструкция 4;
if(условие 1) { if(условие 2) инструкция 1; else инструкция 2; } else { if(условие 3) инструкция 3; else инструкция 4; }

Пример вложения if-else-if

Пример кодаint a; ... if(a >= 1000) cout << "Очень много!" << endl; else if(a >= 100 && a < 1000) cout << "Много!" << endl; else if(a >= 10 && a < 100) cout << "Мало!" << endl; else cout << "Очень мало!" << endl;//точка выхода из if-else-if

Тернарный оператор ?:

Тернарный условный оператор ?: имеет 3 аргумента и возвращает результат первого выражения, если условие равно true, или результат второго выражения, если условие равно false.(Условие) ? Выражение1 : Выражение2;Пример кодаint b, c;cin >> b >> c; //ввод двух целых чисел bool a = (b > c) ? true : false;cout << "a = " << ((a) ? "true" : "false");((a) ? b : c) = 10;

Замена оператора ?: на if-else

Пример кодаint b, c;cin >> b >> c; //ввод двух целых чисел bool a;if (b > c) a = true;else a = false;if (a) cout << "a = true";else cout << "a = false";if (a) b = 10;else c = 10;

Инструкция выбора switch

Управление передается в точку программы, где целочисленное выражение совпало с case-константой и выполняется до оператора break. Если ни с одной из case-констант совпадения нет, то управление передается на конструкцию с default-меткой, при условии ее наличия, в противном случае ни один из операторов не выполняется.Синтаксисswitch(выражение) { case CONST1: ... break; case CONST2: ... break; default: ... }Блок «по умолчанию»Целочисленное выражениеБлок выполняется если выражение равно «CONST1»Блок выполняется если выражение равно «CONST2»

Примеры инструкции switch

Пример кодаint note; cin >> note; //ввод целого числа switch(note) //целочисленное выражение {case 1:case 2: cout << "Неудовлетворительно\n";break;case 3: cout << "Удовлетворительно\n"; break; case 4: cout << "Хорошо\n"; break; case 5: cout << "Отлично\n"; break; default: cout << "Ошибка\n"; //необязательно}//точка выхода из switch

Замена инструкции switch на if-else

Пример кодаint note; cin >> note; //ввод целого числа if(note == 1 || note == 2) cout << "Неудовлетворительно\n";else if(note == 3) cout << "Удовлетворительно\n";else if (note == 4) cout << "Хорошо\n";

else if (note == 5) cout << "Отлично\n";else cout << "Ошибка\n";}

Итерации и циклы

Итерация — это повторение процесса для получения последовательности результатов. Каждое повторение процесса представляет собой одну итерацию, и результат каждой итерации является отправной точкой следующей итерации. В математике и информатике итерация является стандартным элементом алгоритмов.Циклы представляют собой наиболее распространенные языковые конструкции для выполнения итераций.

Цикл while

Цикл while является циклом с предпроверкой условия. Тело цикла будет многократно выполняться, пока условие будет иметь значение true. Синтаксисwhile(условие) { тело цикла } truefalseтело циклаусловиепринимает значение либо true, либо false

Пример с циклом while

Пример кодаint a = 10; while(a--) //тело цикла отработает 10 раз { cout << "Повторять пока a != 0" << endl; }//точка выхода из while

Цикл do-while

Цикл do-while является циклом с постпроверкой, условие проверяется после выполнения тела цикла. Следовательно, блок кода в цикле do-while выполнится хотя бы один раз. Цикл завершится, когда условие будет иметь значение равное false.Синтаксисdo { тело цикла } while(условие); truefalseтело циклаусловиепринимает значение либо true, либо false

Пример с циклом do-while

Пример кодаbool a = false; do { cout << "Цикл выполняется хотя бы один раз!"; } while(a);//точка выхода из do-while

Цикл for

Цикл for является циклом с предпроверкой условия. В цикле могут инициализироваться переменные до начала его выполнения, проверяться условие и выполняться выражение после каждого выполнения тела цикла.Синтаксисfor(инициал.;условие;выражение) { тело цикла } truefalseтело циклаусловиевыражениеинициализация

Пример с циклом for

Пример кодаint N = 10; long f = 1; for(int i = 1; i <= N; i++) f *= i; // f = f * i; cout << "f = " << f << endl;

Сравнение двух циклов

Пример c циклом whiledouble x = 5; double y = 1; int n = 10; int i = 0; while(i < n) { y *= x; //y=y*x; i++; } cout << "y = " << y;Пример с циклом fordouble x = 5; double y = 1; int n = 10; for(int i = 0; i < n; i++) y *= x; //y=y*x; cout << "y = " << y;

Инструкция continue

Инструкция continue пропускает все инструкции, оставшиеся до конца тела цикла, и начинает новую итерацию.
Пример кодаint N = 10; long S = 0; for(int i = 1; i <= N; i++) { if(i%2) continue; //прерывание итерации S += i; // S = S + i; }cout << "Значение S: " << S << endl;

Инструкция break

Инструкция break завершает выполнение цикла и передает управление на следующую за циклом инструкцию.Пример кодаint N = 10; long S = 0; for(int i = 1; i <= N; i++) { if(S > 5) break; //выход из цикла S += i; // S = S + i; } cout << "Значение S: " << S << endl;

Инструкция безусловного перехода goto

Инструкция goto позволяет реализовать передачу программного управления из одной точки программы в другую, отмеченную меткой. Метка состоит из идентификатора и завершающего двоеточия.Пример кода ... a = b + c; goto M5; ... M5: d = e - a; ...

«Обоснованное» применение инструкции goto

Пример кода while(true) { int N; cin >> N; long S = 0; for(int i = 0; i <= N; i++) { S += i; //S = S + i; if(S > 100) goto L1; } cout << "Значение S: " << S << endl; }L1: // выход из двойного цикла

«Избавление» от инструкции goto

Пример кодаwhile(true) { int N; cin >> N; long S = 0; for(int i = 0; i <= N; i++) { S += i; //S = S + i; if(S > 100) break; //выход из цикла for } if(S > 100) break; //выход из цикла while cout << "Значение S: " << S << endl;}