Если у вас появился вопрос, то задать его можно на форуме




 

Глава 8. Начинаем управлять или условные операторы в С++ - Введение в программирование В этой главе учебника по программированию для начинающих мы рассмотрим операторы выбора (или как их еще называют, условные операторы). Давайте попробуем разобраться с назначением этих самых условных операторов. Представим себе такую ситуацию, что наша программа выполняет различные операции: складывает числа, запоминает результаты, выводит какую-нибудь информацию на экран, и все это выполняется последовательно, строчка за строчкой (последовательность построчного выполнения кода программы заложена изначально в программирование). Что же у нас получится? А получится у нас то, что наша программа не будет иметь гибкости - она не сможет принимать никаких решений в зависимости от ситуации. Это, как вы понимаете, неправильно и толка с такой программы мало. На помощь приходятусловные операторы, которые способны в зависимости от ситуации принимать различные решения. Как же именно это происходит у компьютера мы сейчас с вами будем рассматривать на простых примерах. В дальнейшем эти знания вы уже будете использовать в своих более сложных программах на практике. Рассмотрим на примере простейший вариант применения оператора выбора, составим программу: наша программа будет запрашивать у пользователя число и, если это число положительное, то программа выводит сообщение о том, что число положительное, в противном случае - ничего не выводит. Смотрим код ниже: //Используем условный оператор 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 (условие) оператор; либо так, в случае нескольких операторов 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; } } Вложенность может быть и более многоуровневой, если это требуется. Вы можете спросить, почему я сообщения, выводимые программой, пишу на английском...во-первых, потому что компилятор среды CodeBlocks не понимает кирилицу, во-вторых, считаю, что программист хотя бы на начальном уровне должен знать английский, без этого никак. Очень часто даже вакансии программистов напечатаны на английском языке и в требованиях, конечно же, нужен хотя бы технический английский. Поэтому выбор за вами. И наконец у нас подошла очередь ко второму оператору выбора в языке С++ и называется он 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; } 2. if (условие) { оператор 1; оператор 2;....... оператор n; } else { оператор 1; оператор 2;....... оператор n; } 3. if (условие 1) { оператор 1; оператор 2;....... оператор n; } else if (условие 2) { оператор 1; оператор 2;....... оператор n; } else { оператор 1; оператор 2;....... оператор n; } 4. if (условие) { if (условие) { оператор 1; оператор 2;....... оператор n; } else { оператор 1; оператор 2;....... оператор n; } } else { оператор 1; оператор 2;....... оператор n; if (условие) { оператор 1; оператор 2;....... оператор n; } } 5. switch (выражение) { case константное_выражение: оператор 1; оператор 2;....... оператор n; break; case константное_выражение: оператор 1; оператор 2;....... оператор n; break; default: оператор 1; оператор 2;....... оператор n; break; } Глава 9. Работа с циклами в С++ Если у вас появился вопрос, то задать его можно на форуме
Глава 8. Начинаем управлять или условные операторы в С++ - Введение в программирование В этой главе учебника по программированию для начинающих мы рассмотрим операторы выбора (или как их еще называют, условные операторы). Давайте попробуем разобраться с назначением этих самых условных операторов. Представим себе такую ситуацию, что наша программа выполняет различные операции: складывает числа, запоминает результаты, выводит какую-нибудь информацию на экран, и все это выполняется последовательно, строчка за строчкой (последовательность построчного выполнения кода программы заложена изначально в программирование). Что же у нас получится? А получится у нас то, что наша программа не будет иметь гибкости - она не сможет принимать никаких решений в зависимости от ситуации. Это, как вы понимаете, неправильно и толка с такой программы мало. На помощь приходятусловные операторы, которые способны в зависимости от ситуации принимать различные решения. Как же именно это происходит у компьютера мы сейчас с вами будем рассматривать на простых примерах. В дальнейшем эти знания вы уже будете использовать в своих более сложных программах на практике. Рассмотрим на примере простейший вариант применения оператора выбора, составим программу: наша программа будет запрашивать у пользователя число и, если это число положительное, то программа выводит сообщение о том, что число положительное, в противном случае - ничего не выводит. Смотрим код ниже: //Используем условный оператор 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 (условие) оператор; либо так, в случае нескольких операторов 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; } } Вложенность может быть и более многоуровневой, если это требуется. Вы можете спросить, почему я сообщения, выводимые программой, пишу на английском...во-первых, потому что компилятор среды CodeBlocks не понимает кирилицу, во-вторых, считаю, что программист хотя бы на начальном уровне должен знать английский, без этого никак. Очень часто даже вакансии программистов напечатаны на английском языке и в требованиях, конечно же, нужен хотя бы технический английский. Поэтому выбор за вами. И наконец у нас подошла очередь ко второму оператору выбора в языке С++ и называется он 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; } 2. if (условие) { оператор 1; оператор 2;....... оператор n; } else { оператор 1; оператор 2;....... оператор n; } 3. if (условие 1) { оператор 1; оператор 2;....... оператор n; } else if (условие 2) { оператор 1; оператор 2;....... оператор n; } else { оператор 1; оператор 2;....... оператор n; } 4. if (условие) { if (условие) { оператор 1; оператор 2;....... оператор n; } else { оператор 1; оператор 2;....... оператор n; } } else { оператор 1; оператор 2;....... оператор n; if (условие) { оператор 1; оператор 2;....... оператор n; } } 5. switch (выражение) { case константное_выражение: оператор 1; оператор 2;....... оператор n; break; case константное_выражение: оператор 1; оператор 2;....... оператор n; break; default: оператор 1; оператор 2;....... оператор n; break; } Глава 9. Работа с циклами в С++ Если у вас появился вопрос, то задать его можно на форуме
Глава 8. Начинаем управлять или условные операторы в С++ - Введение в программирование В этой главе учебника по программированию для начинающих мы рассмотрим операторы выбора (или как их еще называют, условные операторы). Давайте попробуем разобраться с назначением этих самых условных операторов. Представим себе такую ситуацию, что наша программа выполняет различные операции: складывает числа, запоминает результаты, выводит какую-нибудь информацию на экран, и все это выполняется последовательно, строчка за строчкой (последовательность построчного выполнения кода программы заложена изначально в программирование). Что же у нас получится? А получится у нас то, что наша программа не будет иметь гибкости - она не сможет принимать никаких решений в зависимости от ситуации. Это, как вы понимаете, неправильно и толка с такой программы мало. На помощь приходятусловные операторы, которые способны в зависимости от ситуации принимать различные решения. Как же именно это происходит у компьютера мы сейчас с вами будем рассматривать на простых примерах. В дальнейшем эти знания вы уже будете использовать в своих более сложных программах на практике. Рассмотрим на примере простейший вариант применения оператора выбора, составим программу: наша программа будет запрашивать у пользователя число и, если это число положительное, то программа выводит сообщение о том, что число положительное, в противном случае - ничего не выводит. Смотрим код ниже: //Используем условный оператор 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 (условие) оператор; либо так, в случае нескольких операторов 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; } } Вложенность может быть и более многоуровневой, если это требуется. Вы можете спросить, почему я сообщения, выводимые программой, пишу на английском...во-первых, потому что компилятор среды CodeBlocks не понимает кирилицу, во-вторых, считаю, что программист хотя бы на начальном уровне должен знать английский, без этого никак. Очень часто даже вакансии программистов напечатаны на английском языке и в требованиях, конечно же, нужен хотя бы технический английский. Поэтому выбор за вами. И наконец у нас подошла очередь ко второму оператору выбора в языке С++ и называется он 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; } 2. if (условие) { оператор 1; оператор 2;....... оператор n; } else { оператор 1; оператор 2;....... оператор n; } 3. if (условие 1) { оператор 1; оператор 2;....... оператор n; } else if (условие 2) { оператор 1; оператор 2;....... оператор n; } else { оператор 1; оператор 2;....... оператор n; } 4. if (условие) { if (условие) { оператор 1; оператор 2;....... оператор n; } else { оператор 1; оператор 2;....... оператор n; } } else { оператор 1; оператор 2;....... оператор n; if (условие) { оператор 1; оператор 2;....... оператор n; } } 5. switch (выражение) { case константное_выражение: оператор 1; оператор 2;....... оператор n; break; case константное_выражение: оператор 1; оператор 2;....... оператор n; break; default: оператор 1; оператор 2;....... оператор n; break; } Глава 9. Работа с циклами в С++ Если у вас появился вопрос, то задать его можно на форуме
Глава 8. Начинаем управлять или условные операторы в С++ - Введение в программирование В этой главе учебника по программированию для начинающих мы рассмотрим операторы выбора (или как их еще называют, условные операторы). Давайте попробуем разобраться с назначением этих самых условных операторов. Представим себе такую ситуацию, что наша программа выполняет различные операции: складывает числа, запоминает результаты, выводит какую-нибудь информацию на экран, и все это выполняется последовательно, строчка за строчкой (последовательность построчного выполнения кода программы заложена изначально в программирование). Что же у нас получится? А получится у нас то, что наша программа не будет иметь гибкости - она не сможет принимать никаких решений в зависимости от ситуации. Это, как вы понимаете, неправильно и толка с такой программы мало. На помощь приходятусловные операторы, которые способны в зависимости от ситуации принимать различные решения. Как же именно это происходит у компьютера мы сейчас с вами будем рассматривать на простых примерах. В дальнейшем эти знания вы уже будете использовать в своих более сложных программах на практике. Рассмотрим на примере простейший вариант применения оператора выбора, составим программу: наша программа будет запрашивать у пользователя число и, если это число положительное, то программа выводит сообщение о том, что число положительное, в противном случае - ничего не выводит. Смотрим код ниже: //Используем условный оператор 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 смещена вправо,


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: