Скачать презентацию Основы языка СИ Часть 2 ОПЕРАТОР IF-ELSE SWITCH Скачать презентацию Основы языка СИ Часть 2 ОПЕРАТОР IF-ELSE SWITCH

SI_2_chast.pptx

  • Количество слайдов: 14

Основы языка СИ. Часть 2. ОПЕРАТОР IF-ELSE, SWITCH. ЦИКЛЫ. GOTO. Основы языка СИ. Часть 2. ОПЕРАТОР IF-ELSE, SWITCH. ЦИКЛЫ. GOTO.

Оператор if( ) { } else { } if (выражение) оператор1 else оператор2 Необязательная Оператор if( ) { } else { } if (выражение) оператор1 else оператор2 Необязательная часть Вначале вычисляется выражение; если оно истинно (т. е. имеет ненулевое значение), то выполняется оператор1. Если оно ложно (т. е. имеет нулевое значение) и присутствует блок else, то выполняется оператор2. Выражение в общем случае может состоять из нескольких операторов: if( k > 0 && L<0 || x * x > 25) Если в оператор1(или 2) входит несколько инструкций, то их необходимо заключать в {}. Чтобы избежать ошибок, лучше делать так ВСЕГДА.

Цепочки if-else-if if (выражение) оператор else оператор Каждый следующий блок if-else должен выделяться отступом! Цепочки if-else-if if (выражение) оператор else оператор Каждый следующий блок if-else должен выделяться отступом! Используется для принятия многовариантного решения.

Тернарный оператор ? : Следующий код берет большее из двух чисел, а и b, Тернарный оператор ? : Следующий код берет большее из двух чисел, а и b, и помещает его в переменную z: if (a > b) z = а; z = (а > b) ? а : b; else z = b; Эту и аналогичные конструкции можно записать другим способом, прибегнув к условному выражению с трехместной операцией ? : Условное выражение имеет следующий вид: выраж 1 ? выраж 2 : выраж. З Вначале вычисляется выраж 1. Если оно не равно нулю (т. е. истинно), то вычисляется выражение выраж 2, которое и становится значением всей условной конструкции. В противном случае вычисляется выраж. З, значение которого считается значением всего условного выражения. Всегда вычисляется только одно из выраж 2 и выраж. З.

Оператор switch Используется для выбора одного из нескольких вариантов действий в зависимости от того, Оператор switch Используется для выбора одного из нескольких вариантов действий в зависимости от того, с какой из набора целочисленных констант совпадает значение некоторого выражения. В зависимости от найденного соответствия выполняется ветвление программы. Все метки должны быть метка switch (выражение) разными целыми { числами! case констант-выраж: операторы default: операторы } Оператор break предназначен для выхода из switch. Должен присутствовать в конце каждого блока операторов! (иначе будут выполняться и все следующие операторы) Необязательная часть, операторы после default выполнятся, если не было совпадения ни с одним case.

Циклы используются для многократного повторения кусков кода а) цикл for (инициализация П-ых; условие продолжения; Циклы используются для многократного повторения кусков кода а) цикл for (инициализация П-ых; условие продолжения; изменение значения П-ых) { // тело цикла (тут код, который будет повторяться) } Пример 1 int main()//Программа печатает цифры от 0 до 9 { int i; for ( i = 0; i < 10; i++) { printf( "%d %dn", i ); } }

Список инициализации П-ых может состоять из нескольких П-ых. В этом случае переменные разделяются запятыми. Список инициализации П-ых может состоять из нескольких П-ых. В этом случае переменные разделяются запятыми. Причем некоторые из них (или все) могут быть инициализированы до цикла. Условие продолжения цикла может быть сложным выражением! Пример 2 int main() { int i, j, k = 5; for (i = 0, j = 9; i < 10 || j>-5; i = i+2, j--, k++) { printf( "%d %dn", i, j ); } } Список изменяемых П-ых также может состоять из нескольких П-ых. В этом случае переменные разделяются запятыми. Список инициализации и список изменения могут не совпадать!

Пример 3 int main() { int i = 0, j = 9; for (; Пример 3 int main() { int i = 0, j = 9; for (; i < 10; i = i + 2) { printf( "%d %dn", i, j ); } } В некоторых случаях отдельные* элементы могут отсутствовать, но ; ставится обязательно! * Цикл for может выглядеть и так: for(; ; ), тогда он будет выполняться бесконечно.

б) цикл while (пока) while (выражение) { оператор // тело цикла (тут код, который б) цикл while (пока) while (выражение) { оператор // тело цикла (тут код, который будет повторяться) } Вначале вычисляется выражение. Если оно не равно нулю, то выполняется оператор, а затем выражение вычисляется снова. Эти действия повторяются до тех пор, пока выражение не станет равным нулю. Пример: //Вывод чисел от 10 до 1 int i = 10; while ( i > 0) { printf( "%dn", i ); i--; }

Сравнение for и while for (выраж 1; выраж 2; выраж. З) { оператор } Сравнение for и while for (выраж 1; выраж 2; выраж. З) { оператор } выраж 1; while (выраж 2) { оператор; выраж. З; } В большинстве случаев без разницы, какой из этих циклов использовать. Цикл for выбирают в случаях, когда необходимо последовательно выполнить однотипные операции над набором данных N раз (посчитать сумму, вывести числа от 1 до N и т. п. ). См. ЛР № 4. Цикл while чаще всего используют, когда число итераций цикла заранее неизвестно. Например, считывать текст, пока не встретится определенный символ. См. ЛР № 6.

в) цикл do { } while(); do оператор while (выражение); Пример: проверяет условие в в) цикл do { } while(); do оператор while (выражение); Пример: проверяет условие в конце, после выполнения тела цикла => тело цикла всегда выполняется как минимум один раз! //выведется 0, т. к. условие проверяется после вывода i int i = 0; do { printf( "t%dn", i ); } while ( i > 0);

Вложенные циклы Все циклы могут находится в любом месте программы, в том числе внутри Вложенные циклы Все циклы могут находится в любом месте программы, в том числе внутри другого цикла. Пример (вывод таблицы умножения): int i, j; for(i = 1; i<10; i++) { for(j = 1; j<10; j++) { printf( "t%d", i * j); } printf("n"); }

Операторы break и continue Оператор break вызывает принудительный выход из циклов for, while и Операторы break и continue Оператор break вызывает принудительный выход из циклов for, while и do — аналогично выходу из оператора switch. Выход выполняется из ближайшего (самого внутреннего) цикла или оператора switch. Оператор continue передает управление на следующую итерацию (проход) ближайшего цикла for, while или do. В цикле while или do это означает немедленную проверку условия, тогда как в цикле for дополнительно выполняется инкрементирование. Оператор continue применим только к циклам, но не к оператору switch.

Оператор goto for (. . . ) { } error: метка if (disaster) goto Оператор goto for (. . . ) { } error: метка if (disaster) goto error; решить проблему Нельзя использовать! Никогда! Вообще никогда! Оператор goto передает управление из любого места программы в определенное место, отмеченное меткой. В примере используется для выхода из нескольких вложенных циклов. Любую программу можно переписать без goto.