пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Выражения и операторы языка С++

В теории программирования доказано, что программу для решения задачи любой сложности можно составить только из трех структур, называемых следованием, ветвлением и циклом. Этот результат установлен Боймом и Якопини еще в 1966 году путем доказательства того, что любую программу можно преобразовать в эквивалентную, состоящую только из этих структур и их комбинаций. Следование, ветвление и цикл называют базовыми конструкциями структурного программирования.

•Следованием называется конструкция, представляющая собой последовательное выполнение двух или более операторов (простых или составных). 
   •Ветвление задает выполнение либо одного, либо другого оператора в зависимости от выполнения какого-либо условия. 
   •Цикл задает многократное выполнение оператора.

Самый обычный вид оператора состоит из выражения, за которым следует точка с запятой. Такой оператор называется простым. Например:

      ;                           
     a = b*3+c ;                  
     cout<<"i="<<i;  
     y = sin(x);
     x = y = z = 1.0;     
  • Пустой оператор 
    ; 
    Не выполняет никаких действий. Полезен в тех случаях, когда синтаксис требует наличие оператора. 
     
  • Блок (составной оператор)
    есть последовательность операторов в фигурных скобках. Операторы могут быть любыми, в том числе и операторами объявлкния переменных или составными. Переменная, объявленная в блоке, имеет область видимости до конца блока. После закрывающей фигурной скобки разделитель в виде точки с запятой необязателен. 
    Замечание: тело любой функции - составной оператор. 
     
  • Оператор прерывания
    break ; 
    используется для принудительного выхода (прерывания) из оператора преключателя и операторов цикла. 
     
  • Оператор продолжения
    continue ; 
    используется для принудительного завершения текущей итерации в теле цикла и переходу к следующей итерации. В отличие от предыдущего оператора не приводит к выходу из тела цикла. 
     
  • Операторы возврата 
    return ; 
    return  выражение ; 
    используются для нормального или принудительного завершения вычислений в теле функции. Функция, возвращающая результат должна иметь хотя бы один оператор, возвращающий результат вычислений return выражение;
    Функция, не возвращающая никакого результата (тип результата void), не обязана содержать оператор возврата return ; 
     
  • Оператор вызова функции
    имя_функции(список аргументов) ; 
    используются для выполнения вычислений, заключенных в теле функции. Если функция возвращает результат вычислений, который затем будет использован, следует применять не операторв вызова функции, а оператор присваивания вида 
          имя переменной = имя_функции(список аргументов) ; 
    В противном случае результат работы функции будет потерян. 
     

2.4 Условные операторы и переключатели

Условные операторы используются для принятия решений в зависимости от значений условных выражений. 
 

// вариант 1

if (условное_выражение_1 ) оператор_1 ; 
 

// вариант 2

if (условное_выражение_1 ) оператор_1  else оператор_2  
 

// вариант 3

if (условное_выражение_1 ) оператор_1  
else if (условное_выражение_2 ) оператор_2  
else if (условное_выражение_3 ) оператор_3  
. . . 
else if (условное_выражение_K ) оператор_K  
 

// вариант 4

if (условное_выражение_1 ) оператор_1  
else if (условное_выражение_2 ) оператор_2  
else if (условное_выражение_3 ) оператор_3  
. . . 
else if (условное_выражение_K ) оператор_K  
else оператор_K+1  

В первом варианте оператор_1 выполняется только тогда, когда условие_1 имеет истинное значение. 
В втором варианте оператор_1 выполняется тогда, когда условие_1 имеет значение 'истина', оператор_2 - тогда, когда условие_1 имеет значение 'ложь'. 
В третьем варианте выполняемый оператор определяется выражением, значение которого истинно. 
Если все условия ложны, то в первом и третьем вариантах никакие операторы не выполняются, во втором и четвертом - выполняется последний оператор.
Замечания: 
В условных операторах условные выражения могут иметь различные типы: bool, int, double, char и т.д. 
Выражения, значения которых отличны от false, 0, '0', "" ( пустая строка ), считаются истинными. 
Значения false, 0, '0' или "" считаются ложными. 
В качестве операторов могут быть использованы составные операторы, которые не обязаны заканчиваться точной с запятой. Простые операторы обязательно должны заканчиваться точкой с запятой. 
Конструкция else if позволяет проверить произвольное количество условий. 

Оператор переключения целесообразно использовать в тех случаях, когда программе необходимо осуществить проверку определенных значений. 

switch (выражение) 
(фиг скоб откр)
case значение_1 :  операторы_1; break; 
case значение_2 :  операторы_2; break; 
case значение_3 :  операторы_3; break; 
. . . 
case значение_n :  операторы_n; break; 
default: операторы; break; 
(фиг скоб закр)
Оператор работает следующем образом: 
 - вычисляется значение выражения; 
 - затем выполняются операторы, помеченные значением, совпадающим со значением выражения, например: если выражение принимает значение_1, то выполняются операторы_1 и т.д; 
 - если выражение не принимает ни одного из значений, то выполняются операторы группы default (Ветвь default может отсутствовать). 

Оператор break необходим для того, чтобы осуществить выход из оператора switch. Если он не указан, то будут выполняться следующие группы операторов из списка, несмотря на то, что значение, которым они помечены, не совпадает со значением выражения. 

Значения, которыми помечены операторы должны быть только константами или константными выражениями (т.е. операнды  выражений - константы).

Пример

// Использование условных операторов

double x, y, z;
char ch = ' ';
x = 10.5;
y = -25.45;

if (ch == ' ') z = x + y ;           // результат z = -14.95

if      (ch == '+') z = x + y ;
else if (ch == '-') z = x - y ; 
else if (ch == '*') z = x * y ; 
else if (ch == '/') z = x * y ; 
else z = (double)((int)x % (int)y );  //результат z = 10.00

// Использование переключателя
ch = '/';
switch (ch)
(фигурн скобка откр) case '+' :  z = x + y ; break; 
  case '-' :  z = x - y ; break; 
  case '*' :  z = x * y ; break; 
  case '/' :  z = x / y ; break; 
  default  :  z = (double)((int)x % (int)y );   
(фигурн скобка закр) 			  // результат z = -0.41 

Следует обратить внимание на конструкцмю ( тип ) выражение.  Данная конструкция понимается как вызов функции преобразования типа значения указанного выражения. 
Поэтому вычисление выражения z = ( double ) ( ( int ) x % ( int ) y ) состоит в следующем: 
- значения переменных x, y преобразуются к целому типу, 
- выполняется операция % (остаток от деления целых чисел); 
- выполняется преобразование полученного остатка к вещественному типу; 
- преобразованное значение запоминается в переменной z.


05.06.2015; 08:04
хиты: 121
рейтинг:0
Гуманитарные науки
изобразительные искусства
каллиграфия
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь