Файл: Инструкция безусловного перехода Инструкции условного перехода Инструкции циклов Обработка исключительных ситуаций.pptx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.12.2023
Просмотров: 95
Скачиваний: 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;