Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Начинаем управлять или условные операторы в С++



Начинаем управлять или условные операторы в С++

Рассмотрим операторы выбора (или как их еще называют, условные операторы). Представим себе такую ситуацию, что наша программа выполняет различные операции: складывает числа, запоминает результаты, выводит какую-нибудь информацию на экран, и все это выполняется последовательно, строчка за строчкой (последовательность построчного выполнения кода программы заложена изначально в программирование). Что же у нас получится? А получится у нас то, что наша программа не будет иметь гибкости - она не сможет принимать никаких решений в зависимости от ситуации. Это, как вы понимаете, неправильно и толка с такой программы мало. На помощь приходят условные операторы, которые способны в зависимости от ситуации принимать различные решения. Рассмотрим на примере простейший вариант применения оператора выбора, составим программу: наша программа будет запрашивать у пользователя число и, если это число положительное, то программа выводит сообщение о том, что число положительное, в противном случае - ничего не выводит. Смотрим код ниже:

 

//Используем условный оператор if

#include <iostream>

using namespace std;

int main()
{

int value;

cout << "Enter number: " << endl;
cin >> value;

if (value > 0)

cout << "Number positive" << endl;

return 0;

}

Как видите, здесь мы используем условный оператор if, который в себе содержит условие и, если это условие выполнится, то будет выполнена строчка кода, относящаяся к этому оператору (т.е. следующая строчка кода). Если нужно, чтобы выполнялось несколько строчек кода, при выполнении условия, то их нужно обязательно заключать в фигурные скобки, иначе будет выполнена только одна, первая, строчка кода. Также не забывайте в своих программах использовать табуляцию для лучшей видимости.

Синтаксис условного оператора выглядит так:

if (условие)

оператор;

либо так, в случае нескольких операторов

if (условие)
{

оператор 1;
оператор 2;
.......
оператор n;

}

Давайте теперь запишем данную программу на языке, приближенном к человеческому (на, так называемом, псевдокоде). Вот что у нас получится:

 

Выделяем память для переменной целого типа;

Выводим сообщение, в котором пользователю предлагаем ввести целое число;
Считываем это число и запоминаем в переменной;

Если (введенное число больше нуля), то

Выводим на экран сообщение о том, что число положительное;



Как видите, ничего сложного!

Ниже приведен пример, в котором при выполнении условия в операторе if, выполняется более одной строчек кода (в нашем случае их две):

//Используем условный оператор if

#include <iostream>

using namespace std;

int main()
{

int value;

cout << "Enter number: " << endl;
cin >> value;

if (value > 0)
{

cout << "Number positive" << endl;
cout << "You have entered number: " << value << endl;

}

return 0;

}

Откомпилируем и запустим программу. В появившемся окне консоли программа выводит сообщение и ждет ввода пользователя. Попробуйте поэксперементировать с различными числами. Вы увидите, что наша программа уже стала способной принимать решения в зависимости от условия (нашим условием является введенное число). Если мы вводим положительное число, то программа выводит строки о том, что число положительное и печатает нам его. Иначе, когда число отрицательное, либо ноль, программа ничего не выводит, а просто завершается.

Иногда нужно, чтобы программа и в противном случае (если не выполнилось условие после if) выполняла какие-либо строчки кода. Для этого в языке С++ предусмотрена, так называемая, расширенная версия условного оператора if, в которую добавлено ключевое слово else (иначе). Рассмотрим пример использования, модифицировав предыдущую программу:

//Используем условный оператор if - else

#include <iostream>

using namespace std;

int main()
{

int value;

cout << "Enter number: " << endl;
cin >> value;

if (value > 0)
{

cout << "Number positive" << endl;
cout << "You have entered number: " << value << endl;

}
else
{

cout << "Number negative or a zero" << endl;
cout << "You have entered number: " << value << endl;

}

return 0;

}

Теперь программа и в случае условия, обратного указанного в скобках после if, будет производить действия, описанные после оператора else (иначе). В нашем случае для выполнения обратного условия наше число должно быть отрицательным, либо ноль - т.е. все оставшиеся варианты. Вот синтаксис:

if (условие)
{

оператор 1;
оператор 2;
.......
оператор n;

}
else
{

оператор 1;
оператор 2;
.......
оператор n;

}

Как же быть в случае, если нам нужно предусмотреть три условия:

  1. Когда число положительное
  2. Когда число ни положительное, ни отрицательное, т.е. ноль
  3. Когда число отрицательное

В таком случае у нас имеется гибридный условный оператор. Вот его синтаксис:

if (условие 1)
{

оператор 1;
оператор 2;
.......
оператор n;

}
else if (условие 2)
{

оператор 1;
оператор 2;
.......
оператор n;

}
else
{

оператор 1;
оператор 2;
.......
оператор n;

}

Модифицировав предыдущий листинг, получим следующий код:

//Используем условный оператор if - else if

#include <iostream>

using namespace std;

int main()
{

int value;

cout << "Enter number: " << endl;
cin >> value;

if (value > 0)
{

cout << "Number positive" << endl;
cout << "You have entered number: " << value << endl;

}
else if (value == 0)
{

cout << "The number is not neither positive, nor negative" << endl;
cout << "You have entered number: " << value << endl;

}
else
{

cout << "Number negative" << endl;
cout << "You have entered number: " << value << endl;

}

return 0;

}

 

Разберем работу программы подробнее. Как вы уже знаете из предыдущих глав, работа программы начинается с главной функции main(). Код выполняется построчно, если не указано иного. Первая строка объявляет переменную целого типа - value, в котором мы будем хранить введенное пользователем число. Затем выводится на экран запрос числа и программа ожидает ввода пользователя, запоминает число в переменную value. Далее начинает свою работу оператор выбора if: если выполняется условие, указанное в нем,

if (value > 0)

то управление переходит к операторам этого блока,

{

cout << "Number positive" << endl;
cout << "You have entered number: " << value << endl;

}

иначе этот блок игнорируется и управление переходит к следующей строке условного оператора,

else if (value == 0)

в которой также проверяется условие и при его выполнении выполняется блок операторов этого if

{

cout << "The number is not neither positive, nor negative" << endl;
cout << "You have entered number: " << value << endl;

}

В случае, если не выполняется и это условие, то выполняется блок

{

cout << "Number negative" << endl;
cout << "You have entered number: " << value << endl;

}

Если все это записать на языке понятном человеку, то получиться примерно так:

Резервируем место в памяти компьютера под целое число;

Запрашиваем у пользователя целое число;
Сохраняем это число в памяти компьютера;

Если это число больше нуля, то
{

Выводим сообщение, что число - положительное;
Выводим это число;

}

Иначе Если это число равно ноль, то
{

Выводим сообщение, что это число ни положительное, ни отрицательное;
Выводим это число;

}

Иначе
{

Выводим сообщение, что это число - отрицательное;
Выводим это число;

}

Условные операторы могут также быть и вложенными в друг друга. Это тоже очень часто применяется на практике. Для того, чтобы разобраться с вложениями, приведем такой пример, для его реализации мы несколько модифицируем предыдущий листинг. А добавим вот что: наша программа будет не только сообщать нам о том, что число положительное или отрицательное, но и будет сообщать - это число больше 100 или меньше (соответственно и с отрицательным числом). Вот что у нас получится:

//Используем условный оператор if

#include <iostream>

using namespace std;

int main()
{

int value;

cout << "Enter number: " << endl;
cin >> value;

if (value > 0)
{

cout << "Number positive" << endl;
cout << "You have entered number: " << value << endl;

if (value >= 100)

cout << "This number is more or equally 100" << endl;

else

cout << "This number is less 100" << endl;

}
else if (value == 0)
{

cout << "The number is not neither positive, nor negative" << endl;
cout << "You have entered number: " << value << endl;

}
else
{

cout << "Number negative" << endl;
cout << "You have entered number: " << value << endl;

if (value >= -100)

cout << "This number is more or equally -100" << endl;

else

cout << "This number is less -100" << endl;

}

return 0;

}

Синтаксис таков (это лишь пример, вы можете подстраивать вложенность под свои требования):

if (условие)
{

if (условие)
{

оператор 1;
оператор 2;
.......
оператор n;

}
else
{

оператор 1;
оператор 2;
.......
оператор n;

}

}
else
{

оператор 1;
оператор 2;
.......
оператор n;

if (условие)
{

оператор 1;
оператор 2;
.......
оператор n;

}

}

Вложенность может быть и более многоуровневой, если это требуется.

И наконец у нас подошла очередь ко второму оператору выбора в языке С++ и называется он switch. Синтаксис его таков:

 

 

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

case константное_выражение:

оператор 1;
оператор 2;
.......
оператор n;
break;

case константное_выражение:

оператор 1;
оператор 2;
.......
оператор n;
break;

default:

оператор 1;
оператор 2;
.......
оператор n;
break;

}

Рассмотрим применение данного условного оператора на примере: пользователь вводит число, а программа идентифицирует его (если 0, то программа сообщает, что введен ноль и т.д.). Если число не идентифицировано, то выводится соответствующее сообщение.

//Используем оператор выбор case

#include <iostream>

using namespace std;

int main()
{

int value;

cout << "Enter number: " << endl;
cin >> value;

switch (value)
{

case 0:

cout << "You have entered number 0" << endl;
break;

case 5:

cout << "You have entered number 5 " << endl;
break;

case 21:

cout << "You have entered number 21 " << endl;
break;

default:

cout << "The number is not identified" << endl;
break;

}

return 0;

}


Запомнить:

Условные операторы позволяют программе на конкретных этапах выполнения делать выбор и принимать решения, в зависимости от каких-либо обстоятельств, что несоизмеримо важно для любой серьезной программы. Были рассмотрены пять конструкций:

  1. if (условие)
    {

оператор 1;
оператор 2;
.......
оператор n;

}

  1. if (условие)
    {

оператор 1;
оператор 2;
.......
оператор n;

}
else
{

оператор 1;
оператор 2;
.......
оператор n;

}

  1. if (условие 1)
    {

оператор 1;
оператор 2;
.......
оператор n;

}
else if (условие 2)
{

оператор 1;
оператор 2;
.......
оператор n;

}
else
{

оператор 1;
оператор 2;
.......
оператор n;

}

  1. if (условие)
    {

if (условие)
{

оператор 1;
оператор 2;
.......
оператор n;

}
else
{

оператор 1;
оператор 2;
.......
оператор n;

}

}
else
{

оператор 1;
оператор 2;
.......
оператор n;

if (условие)
{

оператор 1;

оператор 2;

оператор n;

}

}

  1. switch (выражение)
    {

case константное_выражение:

оператор 1;
оператор 2;
.......
оператор n;
break;

case константное_выражение:

оператор 1;
оператор 2;
.......
оператор n;
break;

default:

оператор 1;
оператор 2;
.......
оператор n;
break;

}

 


Дата добавления: 2015-08-29; просмотров: 16 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
срединно-океанический хребет | 

mybiblioteka.su - 2015-2024 год. (0.025 сек.)