- •Оператор if
- •4.2. Конструкция if–else
- •4.3. Конструкция if–else if–else if–...–else
- •4.4. Оператор switch
- •4.5. Условный оператор ?
- •4.6. Оператор break (от английского – прерывать)
- •4.7. Оператор continue (от английского – продолжать)
- •4.8. Оператор goto
- •5.2. Двухмерные массивы, матрицы
- •5.3. Многомерные массивы
- •5.4. Инициализация массивов
- •6.2. Двухмерные символьные массивы
- •6.3. Многомерные символьные массивы
4.5. Условный оператор ?
В отличие от других операторов языка С, которые могут быть унарными или бинарными, специфический оператор условия является тернарным оператором. Это означает, что у него может быть три операнда [4.1].
Общий формат записи оператора условия:
условие ? выражение_1 : выражение_2
Если в результате вычисления условия будет получено значение TRUE (истина, не нуль), то выполняется выражение_1, и результатом выполнения оператора условия будет значение, полученное при вычислении этого выражения. Если в результате вычисления условия будет получено значение FALSE (ложь, т.е. нуль), то выполняется выражение_2, и результатом выполнения оператора условия будет значение, полученное при вычислении выражение_2.
Оператор условия часто описывают как оператор ?. Тернарный оператор условия ? наиболее часто используется для присвоения переменной одного из двух значений в зависимости от некоторого условия.
4.6. Оператор break (от английского – прерывать)
Оператор или утверждение break служит для немедленного выхода из цикла, будь то while, for или do–while. После выхода из цикла выполнение программы продолжается с утверждения (фрагмента программы), непосредственно следующего за циклом.
Если оператор break встречается во вложенном цикле (вложенных циклах), то будет прекращено выполнение того цикла, в котором этот оператор встретился.
Необходимость в использовании оператора прерывания break в теле цикла возникает тогда, когда условие продолжения итераций нужно проверять не в начале цикла (как в циклах while и for) и не в конце тела цикла (как в цикле do–while), а в середине тела цикла [4.2].
Формат записи оператора break:
break;
4.7. Оператор continue (от английского – продолжать)
Оператор или утверждение continue служит для перехода к следующей итерации цикла [4.2].
Оператор continue противоположен по действию оператору break. Оператор continue позволяет в любой точке тела цикла (while, for или do–while) прервать текущую итерацию и перейти к проверке условий продолжения цикла. В соответствии с результатами проверки либо заканчивается выполнение цикла, либо начинается новая итерация. При этом все утверждения (фрагменты программы), которые следуют за оператором continue (ключевым словом), автоматически пропускаются.
Формат записи оператора continue:
continue;
4.8. Оператор goto
Сейчас во многих языках программирования оператор безусловного перехода типа goto не используется. Однако в языке программирования С он имеет место. Применение оператора goto не является хорошим стилем программирования. Но в некоторых случаях его применение бывает уместно. Иногда, при умелом использовании, оператор goto может оказаться весьма полезным, например, если нужно покинуть глубоко вложенные циклы [4.2].
Для оператора goto всегда необходима метка. Метка – это идентификатор с последующим двоеточием. Метка должна находиться в той же функции, что и оператор goto, переход в другую функцию невозможен.
Общий формат записи оператора goto:
goto метка;
.
.
.
метка: заданные действия.
Метка может находиться как до, так и после оператора goto. С помощью оператора goto можно не только выходить из цикла, но и организовать цикл.
Логические операторы отношения приведены в табл. 4.1.
Таблица 4.1. | ||
широкая ячейка | ||
№ п/п |
Оператор |
Операция |
1) |
&& |
И |
2) |
|| |
ИЛИ |
3) |
! |
НЕ, отрицание |
Ниже приведены операции отношений в убывающей последовательности приоритетов [4.2]:
Наивысший !
> >= < <=
== !=
&&
Низший ||
Как и в арифметических выражениях, для изменения порядка выполнения операций сравнения и логических операций можно использовать круглые скобки.
Результат любой операции сравнения или логической операции есть 0 (нуль) или 1.
Одномерный массив – это список связанных однотипных переменных.
Общая форма записи одномерного массива [5.2]:
тип имя_массива[размер];
В приведенной записи элемент тип объявляет базовый тип массива. Количество элементов, которые будут храниться в массиве с именем имя_массива, определяется элементом размер.
В языке С индексация массива начинается с нуля. Например, если размер массива определен величиной 9, то в массиве можно хранить 10 элементов с индексацией 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Доступ к отдельному элементу массива осуществляется с помощью индекса. Индекс описывает позицию элемента внутри массива.
Все массивы занимают смежные ячейки памяти, т.е. элементы массива в памяти расположены последовательно друг за другом. Ячейка памяти с наименьшим адресом относится к первому элементу массива, а с наибольшим – к последнему.
Для одномерных массивов общий размер массива в байтах вычисляется по формуле:
всего байт = размер типа в байтах * количество элементов
В языке С нельзя присвоить один массив другому. Для передачи элементов одного массива другому необходимо выполнить присвоение поэлементно.