КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Оператор присваивания
Операторы присваивания, условный и переключатель
Операторы служат основными строительными блоками программы. В языке Си указанием на наличие оператора служит символ «точка с запятой», стоящий в конце него. Операторы состоят из выражений. Выражение представляет собой объединение операций и операндов. Операндом называется то, над чем выполняется операция.
Общий вид оператора присваивания: <Имя> = <Выражение> Пример: int x, y, a x=5; y=x*2+7; a=y/4; Переменные получают значения: х=5, y=17, а=4.
В языке Си разрешается включать присваивания в выражения, т.е. присваивание может рассматриваться как операция с учётом старшинства и влияния скобок. Пример: а=(y=(x=5)*2+7)/4. В результате переменная х получает значение 5, причём это значение участвует в дальнейших вычислениях. Затем выполняется умножение (5*2), сложение (10+7) и ещё одно присваивание (y=17). Переменная у получает значение 17, после чего производится деление (17/4), результат которого присваивается переменной а. В языке Си для компактной записи операторов присваивания имеются специальные операции: +=, -=, *=, /=, %=. Так, следующие две записи на языке Си эквивалентны: i=i+2 и i+=2. Пример: int x,y; x=y=5; x+=2; /* х увеличить на 2, результат х=7 */ y-=3; /* у уменьшить на 3, результат у=2 */ x*=y; /* х умножить на у, результат х=14 */ x/=++y; /* разделить х на увеличенный у; результат у=3, х=14/3 */
Операция присваивания сама по себе имеет значение (равное значению выражения, стоящего справа от знака “=”) и может входить в выражения.
Оператор if/else
Общий вид оператора: If (<выражение>) <операторы 1> Else <операторы 2> Здесь часть “Else <операторы 2>” является необязательной, можно применять и неполное условие. Вначале вычисляется значение выражения. Операторы 1 выполняются, если значение выражения истинно. Если выражение ложно (его значение равно нулю), и если есть часть с else, то выполняются операторы 2. При программировании требуется аккуратно различать знаки = и ==, потому что в ряде случаев компилятор не сможет обнаружить ошибки, связанные с неправильным использованием знаков этих операций, что приведёт к неверным результатам. В качестве оператора 1 может стоять любой оператор, в частности, снова оператор if/else. При этом может возникнуть неоднозначность, если во вложенной последовательности операторов if/else часть else опускается. Else всегда соответствует ближайшему предыдущему if, не содержащему else. Например, в конструкции If (n>0) If (a>b) z=a; else z=b; else относится к внутреннему if. Если требуется отнести else к внешнему if, то необходимо использовать фигурные скобки: If (n>0) { If (a>b) z=a; } else z=b;
Часто приходится осуществлять выбор более чем из двух вариантов. Чтобы учесть это, конструкция if/else расширяется конструкцией else/if. Распространенный способ выбора по значению из нескольких вариантов: If (<выражение 1>) <оператор 1> Else If (<выражение 2>) <оператор 2> Else If (<выражение 3>) <оператор 3> Else <оператор N>;
Выражения просматриваются последовательно сверху вниз; как только какое-то выражение становится истинным, выполняется следующий за ним оператор, и на этом вся цепочка заканчивается. Последняя часть else, как и раньше, может быть опущена. В языке Си++ имеется компактный способ записи одного из видов оператора if/else. Он называется «условным выражением» или «тернарной операцией». Такое выражение выглядит в общем виде так: B1? B2: B3 Сначала вычисляется значение выражения В1. Если оно отлично от нуля (истинно), то вычисляется значение выражения В2, которое и становится значением условного выражения. В противном случае вычисляется значение выражения В3, и оно становится значением условного выражения. Условное выражение удобно использовать в тех случаях, когда имеется некоторая переменная, которой можно присвоить одно из двух возможных значений. Типичными примерами являются присваивание переменной значение большей из двух величин: max = (a>b)? a: b; и нахождение абсолютного значения числа: x = (y<0)? –y: y;
Оператор-переключатель switch
В тех случаях, когда в программе необходимо произвести выбор одного из нескольких вариантов, удобно применять оператор switch. Его синтаксис:
Switch (<выражение>) { case <константа 1>: <список операторов 1>; case <константа 2>: <список операторов 2>; … case <константа N>: <список операторов N>; default: <список операторов>; }
Оператор-переключатель выполняется следующим образом. Вычисляется значение выражения в скобках, приведённого после ключевого слова switch, затем программа просматривает список меток, указанных после слов case, до тех пор, пока не находит ту, которая соответствует данному значению. Далее программа переходит к выполнению оператора, расположенного в этой строке. Если подходящей метки не найдётся и если существует строка с меткой default:, то будет выполняться оператор, помеченный этой меткой. В противном случае произойдёт переход к оператору, расположенному за оператором switch. Метки, имеющиеся в операторе switch, должны быть константами или константными выражениями (выражениями, операнды которого константы) целого или символьного типа. Запрещается использовать в качестве метки переменную. Значением выражения в скобках должна быть величина целого или символьного типа. Список операторов варианта может быть либо пустым, либо заканчиваться одним из операторов завершения (break, continue, goto, return). Если у вариантов нет общих частей, то рекомендуется каждый вариант завершать оператором break. Пример: Если не использовать оператор завершения, то по окончании выполнения списка операторов выбранного варианта произойдёт переход на следующий вариант из списка.
Дата добавления: 2014-01-04; Просмотров: 506; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |