Особенности языка С. Учебное пособие if-elseВ языке программирования C синтаксис оператора ветвления if (логич_выражение) выражение1; else выражение2; Как и в других языках ветка В языке С в простых логических выражениях используются следующие знаки операторов: >, <, >=, <=, ==, !=. В случае если тело той или иной ветки состоит из нескольких законченных выражений, разделяемых точкой с запятой, то тело заключается в фигурные скобки: if (логич_выражение) { выражение1; выражение2; … } else { выражениеN; … } Задание В C можно использовать вложенные конструкции if (…) if (…) …; else …; else if (…) …; else …; Для более легкого восприятия человеком отступами подчеркнуто, что куда вложено. Однако для компилятора с языка C отступы никакой роли не играют, и принадлежность первой ветки if (…) if (…) ….; else if (…) ….; else ….; <c> Программист отступами показал, что он хочет, чтобы первое <c>else if. Однако компилятор, руководствуясь правилом отнесения веток else, расценит программу вот так (если перевести на удобство чтения ее программистом):if (…) if (…) ….; else if (…) ….; else ….; При этом программа будет делать не то, что хотел программист: если в выражении при первом if (…) { if (…) ….; } else if (…) ….; else ….; В таком случае программа будет восприниматься компилятором именно так, как задумал программист. Задание Условное выражениеВ языке программирования C существует сокращенная запись инструкции Переводится это так. Если логич_выражение вернуло истину, то все выражение возвращает выражение1; если логич_выражение вернуло ложь, то все выражение возвращает выражение2. Например: x = 12; y = 16; z = (x > y) ? x - 1 : y - 1; Здесь z получит значение 15. Такое условное выражение бывает очень удобно, однако область его применения ограничена простейшими случаями ветвления, т.к. невозможно создавать сложные "тела" в такой конструкции. Задание Операторы И (&&) и ИЛИ (||)Как известно логическое выражение может быть сложным. Логические операторы И и ИЛИ в языке программирования C обозначаются соответственно парными знаками амперсанда (&&) и вертикальной черты (||). Их приоритет меньше, чем у простых логических операторов, поэтому простые логические операции при их объединении в сложные логические выражения можно не заключать в скобки. Пример сложного логического выражения на языке C: Задания
printf("%d\n", a == b && c < d); printf("%d\n", c < d); Оператор switchПри организации множественного выбора бывает удобно использовать не вложенные switch (целая_переменная) { case константа1: операции; case константа2: операции; …. default: опрации; } Это приблизительное, а не точное описание. В скобках после слова switch может стоять не только переменная, но и выражение, результат выполнения которого возвращает целое значение (может быть символ). Константы при case также могут быть результатом выполнения выражений. Константы можно группировать в одном case (например, case 12, 13, 18). Ветка default не обязательна.
При выполнении оператора int a=1; switch (a) { case 0: printf("%d ", 0); case 1: printf("%d ", 1); case 2: printf("%d ", 2); default: printf("%d ", -1); } printf("\n"); на экране будет выведено: 1 2 -1 , т.к. как только совпадение было обнаружено, все нижеследующие инструкции были выполнены. Чтобы этого не происходило, в конце операций, принадлежащих определенному int a=1; switch (a) { case 0: printf("%d\n", 0); break; case 1: printf("%d\n", 1); break; case 2: printf("%d\n", 2); break; default: printf("%d\n", -1); } выведет только единицу, т.к. выполнение всей инструкции switch прервется после выполнения инструкции break при case 1.
Задание |
|||


Последние комментарии
4 дня 16 часов назад
4 дня 17 часов назад
4 дня 17 часов назад
4 дня 18 часов назад
1 неделя 4 дня назад
1 неделя 4 дня назад
1 неделя 5 дней назад
1 неделя 6 дней назад
1 неделя 6 дней назад
2 недели 6 дней назад