Не зависят от конкретного компьютера Язык Си
Скачать 5.8 Mb.
|
Оператор множественного выбора (переключатель)Оператор switch (оператор множественного выбора или переключатель) используется для реализации выбора из нескольких вариантов. Синтаксис: switch (выражение) { case значение1: [операторы1;] case значение2: [операторы2;] … [default: операторы_для_несовпадения;] } 123 Операторы, выполняющиеся в каждом случае, не нужно оформлять в виде блока Фигурные скобки после выражения и в конце оператора являются обязательными. Выражение и значения должны иметь целый или символьный тип. Выполнение оператора начинается с вычисления выражения. Затем выполняются те операторы, у которых значение совпало с вычисленным выражением. Обычно эта группа операторов заканчивается оператором break, который выполняет выход из оператора switch. 124 Если break отсутствует, то будут выполняться все следующие операторы до тех пор, пока не встретится break или не закончится оператор switch. Если вычисленное значение выражения не совпало ни с одним из указанных значений, и имеется секция default, то выполняются операторы, указанные в этой секции. Если секция default отсутствует, то оператор switch завершает работу. 125 Оператор выбора Особенности:
или символьного типа (char) нельзя ставить два одинаковых значения: switch ( i+3 ) { case 1: a = b; break; case 2: a = c; } switch ( x ) { case 1: a = b; break; case 1: a = c; } Напишем программу, которая для введенного значения оценки (цифры) печатает то же значение словами. Если введенное значение не является оценкой, то программа должна сообщить об этом. 127 void Prim3_2(){ int x; cout << "x = "; cin >> x; switch (x) { case 1: cout << "очень плохо"; break; case 2: cout << "плохо"; break; case 3: cout << "удовлетворительно"; break; case 4: cout << "хорошо"; break; case 5: cout << "отлично"; break; default: cout << "значение вне диапазона"; } cout << endl; } 128 Цикл – это многократное выполнение одинаковых действий. Циклические алгоритмы в С++
цикл с известным числом шагов (например, выполнить действие 10 раз) – цикл for цикл с неизвестным числом шагов (делать, пока не выполнится условие останова цикла) – цикл while Цикл с параметром Оператор цикла с параметром используется в тех случаях, когда известно количество итераций цикла Итерацией называется один проход цикла Синтаксис: for (выражение1; выражение2; выражение3) оператор; Ни одно из трех выражений не является обязательным, но точки с запятой должны присутствовать. Цикл с параметромВыражение1 используется для объявления и (или) инициализации ранее объявленной переменной-счетчика, которая будет отвечать за истинность условия в цикле. Инициализация переменных выполняется один раз в начале исполнения цикла. Можно написать несколько операторов, разделив их запятой. Переменная-счетчик всегда должна иметь целочисленный тип данных. Выражение2 определяет условие выполнения цикла. Пока значение выражения, приведенное к типу bool, равно true, цикл выполняется. 131 Цикл с параметромВыражение3 определяет правило изменения параметров цикла (переменной счетчика). Модификация выполняется после каждой итерации цикла. Можно написать несколько операторов через запятую. 132 Цикл с параметром133 for (инициализация; условие выполнения цикла; модификация) { // тело цикла } Особенности:
модификация выполняется в конце очередного шага цикла; Цикл с параметром Особенности:
если в теле цикла один оператор, скобки {} можно не ставить: for(i=1; i<8; i++) { i--; } for (i = 1; i < 8; i++) a += b; Сколько раз выполняется цикл? a = 1; for(i=1; i<4; i++) a++; a = 4 a = 1; b=2; for(i=3; i >= 1; i--)a += b; a = 7 a = 1; for(i=1; i >= 3; i--)a = a+1; a = 1 a = 1; for(i=1; i<= 4; i--)a ++; зацикливание a = 1; for(i=1; i<4; i++) a = a+i; a = 7 Цикл for. Пример Заголовок цикла записывается в круглых скобках, точка с запятой после заголовка не ставится! Внутри заголовка: 1. На первом месте указано начальное значение изменяемого параметра цикла. В нашем примере изменяемым параметром является переменная i, она же служит счетчиком цикла. Начальное значение равно 1. Каждое новое значение переменной соответствует одному проходу цикла. После задания начального значения ставится точка с запятой. for (int i = 1; i <= 10; i++) - заголовок цикла { x=i; y=2*x-5; cout << y << endl; } тело цикла 2. На втором месте в заголовке указано конечное значение переменной. В нашем примере конечное значение переменной i равно 10. Снова ставим точку с запятой. 3. И, наконец, на третьем месте, указан шаг изменения переменной или шаг цикла. Шаг цикла — это значение, на которое будет увеличиваться или уменьшаться переменная при каждом проходе (i++ означает увеличение на единицу). За заголовком цикла идет тело цикла, которое записывается в фигурных скобках. Цикл for. Пример #include #include using namespace std; int t, dt=10; int main() { setlocale (0, ""); for (t=0; t<=60; t=t+dt) cout << "Время в сек: " << t << endl; return 0; } В качестве изменяемого параметра цикла может выступать любая физическая величина. Пример цикла for с параметром «время». Задание. Определить значения переменных а, sum после выполнения цикла. Цикл for. Задание int a = 5; int sum=0; for( i = 1; i <= 4; i++ ) { a = a + 2; sum=sum+a; } cout << a << endl; cout << sum << endl; Задание. Определить значения переменных а, sum после выполнения цикла. Цикл for. Задание int a = 5; int sum=0; for( i = 1; i <= 4; i++ ) { a = a + 2; sum=sum+a; } cout << a << endl; cout << sum << endl; i=1, a=7, sum=7 i=2, a=9, sum=16 i=3, a=11, sum=27 i=4, a=13, sum=40 (i=1; i<=4; i++) a=a+2; sum=sum+a; Вывод a, sum Ввод a, sum Когда мы не знаем, сколько итераций должен произвести цикл, нам понадобится цикл while или do...while. Синтаксис циклов while и do…while в C++ выглядит следующим образом: while: do…while: while (условие) do { { Тело цикла; Тело цикла; } } while (условие); Циклы будут выполняться до тех пор, пока выполняется условие, указанное в круглых скобках. Циклы while и do…while Цикл с предусловием while Оператор цикла с предварительной проверкой условия Синтаксис: while (выражение) оператор Оператор может быть составным (блоком). В этом случае не забудьте поставить фигурные скобки. Цикл с предусловием while Тело цикла (оператор) выполняется до тех пор, пока заданное выражение истинно. Условие (выражение), определяющее будет ли цикл повторяться, вычисляется и проверяется перед каждой итерацией цикла. Поэтому возможна ситуация, при которой тело цикла не выполнится ни разу. Такой цикл называется циклом с предпроверкой условия Цикл с предусловием while Цикл с предусловием выполняется так: Вычисляется выражение Если оно истинно (не 0) выполняется оператор Снова вычисляется выражение Если оно ложно – выход из цикла Цикл с предусловием: алгоритм начало count конец нет да n != 0? count = 0; count = count + 1; n = n / 10; обнулить счетчик цифр ввод n выполнять «пока n != 0» Цикл с предусловием while Особенности:
a = 4; b = 6; while ( a > b ) a = a– b; a = 4; b = 6; while ( a < b ) d = a + b; Цикл с предусловием while Особенности:
если в теле цикла только один оператор, скобки {} можно не писать: while ( a < b && b < c ) { ... } while ( a < b ) a ++; Сколько раз выполняется цикл? a = 4; b = 6; while ( a < b ) a ++; 2 раза a = 6 a = 4; b = 6; while ( a < b ) a += b; 1 раз a = 10 a = 4; b = 6; while ( a > b ) a ++; 0 раз a = 4 a = 4; b = 6; while ( a < b ) b = a - b; 1 раз b = -2 a = 4; b = 6; while ( a < b ) a --; зацикливание Цикл с предусловием. Пример Напишем программу, которая вводит с клавиатуры символы до тех пор, пока не будет введен символ «.». Для контроля введенные символы выводятся на экран. Так как условие проверяется в начале каждой итерации, перед выполнением цикла переменной sym нужно присвоить значение, отличное от точки (например, символ «*»), чтобы цикл выполнился хотя бы один раз. |