Использование оператора условного перехода
Оператор условного перехода имеет следующий формат записи: If (L) оператор 1 ; Else Оператор 2 ; , где L ¾ выражение. Если значение этого выражения “истина” (не нуль ), то выполняется оператор1, если же оно “ложь”, то выполняется оператор2; в случае, когда выражение ложно и отсутствует ветвь else, ¾ выполняется следующий оператор. Например, оператор условного перехода может иметь вид: if ( i < j ) i++; Else { j = i - 3; i ++; }
Использование оператора выбора Оператор выбора служит для выбора одного из многих вариантов решения и имеет следующую форму записи; Switch (L) { case к .в .1: оператор 1; [break;] case к.в.2: оператор 2; [break;] . . . . . . . . . . . . . . . . . . . . . . . . . case к .в .n: оператор n; [break;] [default: оператор n+1;] } , где switch, case, default ¾ служебные слова; break ¾ оператор (необязательный) прерывания выполнения операторов switch; L ¾ любое выражение одного из целых типов; к.в.1,…, к.в.n ¾ константные выражения, которые не могут повторяться и не могут содержать переменных или вызовов функций. Обычно это целая или символьная константа; оператор 1;. . . ¾ любые операторы С++. Выполняется этот оператор следующим образом: вычисляется значение выражения L, затем это значение сравнивается (последовательно сверху вниз) со значениями константных выражений к.в.1,.. и при совпадении значений L и одного из к.в. будут выполнятся все операторы начиная с соответствующей ветви, если в конце ветви нет оператора break. При наличии оператора break, выполняется только оператор, находящийся в соответствующей ветви и управление передаётся оператору, находящемуся за пределами оператора switch. Если значение выражения L не совпадает ни с одним значением к.в., то выполняется ветвь default и осуществляется выход из оператора switch . В случае, когда в этом операторе нет ветви default ( она не обязательна), и значение L не совпадает ни с одним из значений к.в. , осуществляется выход из оператора switch. Можно привести следующий фрагмент программы с использовани-ем оператора switch: int a=2; Switch ( a ) { case 1: func1( ); case 2: func2( ); case 0: case 4: func3( ); default: printf ("gud bay \n"); }
При выполнении этого оператора будут реализованы функции: func2, func3 и default: printf ("gud bay \n"); . Данный пример можно записать так же в следующем виде: int a=2; Switch (a) { case 1: func1( ); break; case 2: func2( ); break; case 0: case 4: func3( ); break; default: printf ("gud bay \n"); } . В такой реализации будет выполнена только ветвь case 2: func2( ); break; и выход из оператора switch.
Операторы цикла В языке С++ имеется три оператора цикла: while, do, for. Оператор цикла while L с предусловием ¾ любой простой, составной или пустой оператор, здесь L-любое допустимое выражение. Выполняется этот оператор следующим образом: если результат выражения L не равен нулю (“истина”), то выполняется цикл, а если равен нулю (“ложь “), то цикл не выполняется и управление передается следующему за while оператору. Так для примера 1.5 программа с использованием оператора while будет иметь вид: // P1_6.CPP ¾ вычисление функции y = a* x* x – sin (x) // с использованием оператора цикла while # include < stdio . h> #include <math.h> main ( ) { float a, x, y; a = 10 . 3 ; x = - 1 ; while ( x <= 1) { y = a * x * x - sin(x) printf ("x = % 4 f, y = % 6 f \n", x, y) ; x = x + 0.2; } }
Оператор цикла for имеет следующую форму записи:
for ( [ выр1; ] [ выр2; ] [ выр3 ] ) оператор;, где выр1 ¾ выражение инициализации обычно используется для установки начального значения; это выражение присваивания (необязательный параметр); выр2 ¾ выражение условия , определяющее при каком условии цикл будет повторяться (необязательный параметр); выр3 ¾ выражение итерации, определяющее шаг изменения перемен-ных, управляющих циклом после каждого выполнения (необязательный параметр). Этот оператор реализуется следующим образом: ¾ сначала выполняется выражение инициализации ( эта нотация может быть выполнена до оператора for ); ¾ вычисляется условное выражение; ¾ если результат условного выражения “истина” (не равно нулю ), то выполняется оператор цикла; ¾ вычисляется выражение итерации; ¾ вновь проверяется условие; ¾ как только условное выражение становится равным нулю “ложь”, управление передается оператору, следующему за оператором цикла for . Поскольку проверка условия производится перед циклом, то цикл может ни разу не выполняться, если условие сразу будет ложным. Проиллюстрируем использование оператора цикла for для ранее рассматриваемого примера 1.5: // P1_7.CPP ¾ вычисление функции y = a * x * x - sin(x) // с использованием оператора цикла for # include < stdio . h> #include <math.h> Main ( ) { float a, x, y; a = 10.3 ; for ( x = -1 ; x <= 1; x = x + 0.2 ) { y = a * x * x - sin(x) ; printf ( "x = % 4 f, y = % 6 f \n", x, y ) ; x = x + 0.2; } }
В операторе for может использоваться несколько переменных, управ-ляющих циклом, а любые выражения могут отсутствовать, например :
int = i; for ( ; i < 4; i++) или int k, n, y; for ( k = 0, n = 20; k <= n; k++, n-- ) y = k * n; В этом операторе используется два выражения инициализации и два выражения итерации. Выполняется такой оператор следующим образом: сначала присваиваются значения переменным k = 0 и n = 20. Затем происходит сравнение k <= n. Если это условие имеет значение “истина”,то будет выполняться тело цикла, а затем выражения k++ и n-- ;если же условие не выполняется, то цикл прекращается. Оператор цикла do обычно используется в тех случаях, когда тело цикла должно выполняться хотя бы один раз, и имеет следующую структуру записи: Do оператор While (выражение); , где выражение ¾ условное выражение.
Выполняется оператор do следующим образом: сначала осуществляется вход в тело цикла и выполняется оператор (он может быть простой или составной), после того проверяется условие и, если оно выполняется, т.е. “истина” ( не равно нулю), то цикл повторяется, а если “ложь” ¾ осуществляется выход из цикла. С использованием оператора цикла do пример 1.5 будет иметь вид:
// P1_8.CPP ¾ вычисление функции y = a * x * x - sin(x) // с использованием оператора цикла do # include < stdio . h> #include <math.h> main ( ) { float a, x, y; a = 10.3 ; x = -1 ; do { y = a * x * x - sin ( x ) ; printf ( " x = % 4 f, y = % 6 f \n ", x, y ) ; x = x + 0.2; } while ( x <= 1 ); }
1.5 Контрольные вопросы
1. Каковы правила записи программы на языке С++ ? 2. Какие данные обрабатываются с помощью языка С++ ? 3. Как задаются типы данных в С++ ? 4. Что такое константа в С++, приведите примеры констант? 5. Что называется переменной в С++? 6. Как обеспечивается организация ввода- вывода ? 7. Как организуется форматизованый вывод результатов ? 8. Для чего нужны операторы условного и безусловного перехода и как они работают ? 9. Как работает оператор switch ? 10. Какие операторы цикла вы знаете, как работает оператор цикла for ? 11. Каковы особенности работы оператора цикла do и while ?
Популярное: Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (274)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |