Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры программирование.doc
Скачиваний:
7
Добавлен:
17.04.2019
Размер:
257.54 Кб
Скачать
  1. Условные операторы.

Условный оператор имеет следующий вид:

первая форма:

If (выражение) инструкция1;

else инструкция2;

#include<iostream>

int main()

{

float x,y,z;

std::cout << "Enter x, please:" << std::endl;

std::cin >> x;

std::cout << "Enter y, please:" << std::endl;

std::cin >> y;

if (y==0)

{

std::cerr << "y should not be zero!" << std::endl;

}

z=x/y;

std::cout << "z= " << z << std::endl;

return 0;

}

If (выражение)

{последовательность инструкций 1};

else

{последовательность инструкций 2};

#include<iostream>

int main()

{

int somenumber = 7;

std::cout << "Enter number, please:" << std::endl;

int number;

std::cin >> number;

if (number > somenumber)

{

std::cout << "Your number more than " << somenumber << std::endl;

}

else

{

std::cout << "Your number less than " << somenumber

<< " or equal to it" << std::endl;

}

return 0;

}

вторая форма:

If (выражение) инструкция1;

else if (выражение) инструкция2;

else

инструкция;

#include<iostream>

int main()

{

int somenumber = 7;

std::cout << "Enter number, please:" << std::endl;

int number;

std::cin >> number;

if (number > somenumber)

{

std::cout << "Your number more than " << somenumber << std::endl;

}

else if (number < somenumber)

{

std::cout << "Your number less than " << somenumber << std::endl;

}

else

{

std::cout << "Congratulations! Your number is equal to " << somenumber << std::endl;

}

return 0;

}

Выражение в скобках является условием. Если его значение не равно 0 (истинно), то выполняется оператор инструкция1, в противном случае выполняется оператор инструкция2 (для первой формы оператора) или очередной оператор программы (для второй формы). Если условный оператор содержит другие условные операторы, то слово else соотносится с ближайшим ключевым словом if, еще не связанным ни с каким ключевым словом else.

Приведем пример следующего вычисления:

Y={x*x+x*x*x, если х>1

2, если 0<=х<=1

2-*х*х, если х<0}

Реализация его с помощью условного оператора:

#include<iostream>

int main()

{

float y,x;

std::cout << "Enter x, please:" << std::endl;

std::cin >> x;

if (x >= 1)

{

y = x*x*x+x*x;

}

else if ((x > 0)&&(x<1))

{

y = 2;

}

else

{ y = 2-x*x; }

std::cout << "y= " << y << std::endl;

return 0;

}

#include<iostream>

int main()

{

float y,x;

std::cout << "Enter x, please:" << std::endl;

std::cin >> x;

if (x > 0)

{

if (x>=1)

{ y = x*x*x+x*x; }

else

{ y=2; }

}

else

{ y = 2-x*x; }

std::cout << "y= " << y << std::endl;

return 0;

}

Левыми отступами строк текста программы подчеркиваются особенности ее структуры, хотя этого не требует синтаксис C++ (формат исходного текста совершенно произволен).

Инструкция switch

Инструкция выбора обеспечивает многонаправленное ветвление.

switch (выражение)

{ case константаl:

последовательность инструкций;

case константа2:

последовательность инструкций;

...

default:

последовательность инструкций;

}

где выражение — целочисленное или символьное выражение, константаl и т.д. — константные выражения одного типа, последовательность инструкций - произвольные последовательности операторов. Управляющая конструкция switch передает управление тому из помеченных с помощью case операторов, для которого значение константного выражения совпадает со значением выражения (при этом тип константных выражений автоматически приводится к типу выражения выражение). Некоторые последовательности операторов могут быть пустыми, тогда соответствующая метка будет относиться к следующей последовательности. Таким образом, несколькими метками при желании можно пометить одну и ту же последовательность операторов.

Если значение выражение не совпадает ни с одним из константных выражений, то происходит переход к оператору, помеченному меткой default. Таких меток внутри переключателя должно быть не более одной. Причем в случае ее отсутствия предполагается, что никаких действий по умолчанию (при несовпадении выражение с константными выражениями) не предусмотрено и ни один из внутренних операторов не выполняется.

Пример:

#include<iostream>

int main()

{

char x;

std::cout << "Enter x, please:" << std::endl;

std::cin >> x;

switch (x)

{

case 'A':

std::cout << "A have been chosen! " << std::endl;

break;

case 'B':

std::cout << "B have been chosen! " << std::endl;

break;

case 'C':

std::cout << "C have been chosen! " << std::endl;

break;

default:

std::cout << "You should choose between A, B, and C!" << std::endl;

}

return 0;

}