Приводимая ниже программа демонстрирует цепочку if– else- if.



Лекция5-курс-«Языки программирования»

СОДЕРЖАНИЕ

 

Предложения управления программой.. 2

Предложение IF. 2

Вложенные предложения if 3

Цепочка if – else - if 4

Предложение switch. 5

Вложенные предложения switch. 8

Цикл for. 9

Некоторые варианты цикла for 10

Опущенные секции. 11

Бесконечный цикл. 12

Цикл с отсутствующим телом.. 12

Цикл while. 13

Цикл do-while. 14

Использование break для выхода из цикла. 16

Использование continue. 17

Вложенные циклы.. 18

Использование предложения goto. 19

Вопросы для самоконтроля. 20


Предложения управления программой

В С++ имеются три категории предложений управления программой (управляющие ходом выполнения программы): предложения выбора, которые включают в себя if и switch; предложения циклов, включающие в себя циклы, for, while, do-while; и предложения переходов, которые включают в себя break,continue, return, и goto. К предложению return мы вернёмся позже, а пока будут рассмотрены все оставшиеся.

Предложение IF

Полная форма предложения выглядит так:

if (выражение) предложение;

 else предложение;

Здесь мишенями if и else являются одиночные предложения. Предложение else не является обязательным. Кроме того мишенями и if для, и для else могут быть блоки предложений. Общая форма с использованием блоков выглядит так:

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

{

Последовательность предложений

}

else

{

Последовательность предложений

}

Примечания

· Ни при каких обстоятельствах оба блока последовательных предложений не могут быть выполненными одновременно.

· Выражение (условное), управляющее конструкцией if-else  может быть любым допустимым в С++ выражением, дающим в результате истину или ложь.

Приводимая ниже программа демонстрирует использование предложения if-else. Программа генерирует случайное число и запрашивает вашу догадку. Далее выдаётся соответствующее сообщение. В программе используется функция rand(), которая возвращает случайное целое число. Эта функция требует подключения заголовка <cstdlib> .

Задание 5-1

// Задание 5-1.cpp: определяет точку входа для консольного приложения.

// EX_MAGIC.cpp: главный файл проекта.

/* Программа Магическое число

Назовите файл EX_MAGIK.cpp

*/

  #include "stdafx.h"

  #include <iostream>

  #include <cstdlib>

 

  using namespace std;

  int main()

{

        setlocale(LC_ALL, "Russian");

        int magik;                   //магическое число

        int guess;                   //догадка

        srand(time_t (NULL)); // использование таймера для получения числа

        magik = rand() % 10 + 1; // получение случайного числа от 1 до 10

        cout << "Введите вашу догадку: ";

        cin >> guess;

        if (guess == magik) cout << "***Правильно***\n";

        else cout << " Жаль, но вы ошиблись. \n";

  return 0;

}

 

 

Примечание

· В С++ любое допустимое выражение, а не только логическое может быть использовано для управления предложением if. Требуется только, чтобы результат вычисления управляющего выражения мог рассматриваться как истинный или ложный. В С++ значение 0 преобразуется в false , а ненулевое значение в true.

Примером такого использования выражения может служить программа получающая частное от деления двух величин, где if используется для проверки делителя на 0.

Задание 5-2

// Задание 5-2.cpp: определяет точку входа для консольного приложения.

//

/* Использование значения int для управления

предложением if

Назовите файл 5_2 EX_IFint.cpp

*/

#include "stdafx.h"

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

int a, b;

cout << "Введите делимое: ";

cin >> a;

cout << "Введите делитель: ";

cin >> b;

if (b) cout << " Результат : " << (float) a / b << "\n";

else cout << " Деление на ноль недопустимо.";

return 0;

}

 

 

В этом примере нет никакой необходимости использовать предложение в такой форме:

if (b != 0 ) cout << “ Результат : ” << a/b << ”\n” ;

т.к. эта форма предложения избыточна, неэффективна и многими программистами на С++ считается дурным тоном.

Вложенные предложения if

Вложенным называется такое предложение if, которое служит мишенью для другого if или else. Вложенные if широко используются в программировании. Главное, что нужно помнить о вложенных if в  С++   -  предложение else всегда относится к ближайшему к нему предложению if, находящемуся в том же блоке, что и else, но ещё не имеющего своего else, например:

if (i)

{

if (j) result = 1;

if (k) result = 2;

else result = 3;         //это else относится If (k)

}

else result = 4;         // это else относится If (i)

 

Используя вложенное if можно усовершенствовать программу «Магическое число» выдавая сообщение пользователю, в какую сторону он ошибся.

Задание 5-3

// Задание 5-3.cpp: определяет точку входа для консольного приложения.

/* Демонстрация использования if

Программа «Магическое число»- усовершенствованная

Назовите файл 5_3 EX_MAGIK_1.cpp

*/

#include "stdafx.h"

#include <iostream>

#include <ctime>      // для использования функций time()

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

int magik;              //магическое число

int guess;              //догадка

srand(time(NULL)); // использование таймера для получения числа

magik = rand() % 100 + 1;           //получение случайного числа

cout << magik << "Введите вашу догадку: ";

cin >> guess;

if (guess == magik)

{

       cout << "***Правильно***\n";

       cout << magik << " и есть магическое число \n";

}

else

{

       cout << " Жаль, но вы ошиблись.";

       if (guess > magik) cout << " Ваше число слишком велико. \n";

       else cout << " Ваше число слишком мало. \n";

}

return 0;

}

Цепочка if – else - if

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

if (условие)

предложение;

else if (условие)

предложение;

else if (условие)

предложение;

.

.

.

.

else

предложение;

Условные выражения оцениваются сверху вниз. Как только обнаруживается истинный результат, выполняется предложение, относящееся к этому условию, и оставшаяся часть цепочки пропускается. Если ни одно из условий не дало истинного результата, тогда выполняется последнее предложение else. Это последнее предложение часто выступает в качестве действия по умолчанию; другими словами, если все предшествующие условия не удовлетворяются, выполняется это последнее предложение else. Если последнего предложения в этой конструкции нет, тогда не выполняется никаких действий.

Приводимая ниже программа демонстрирует цепочку if– else- if.

Задание 5-4

// Задание 5-4.cpp: определяет точку входа для консольного приложения.

// Демонстрация цепочки if-else-if

// Назовите этот файл 5_4 EX_IF_ELSE_IF

#include "stdafx.h"

#include <iostream>

using namespace std;

 

int main()

{

setlocale(LC_ALL, "Russian");

int x;

for (x = 0; x < 6; x++)

{

       if (x == 1) cout << " х равно единице \n";

       else if (x == 2) cout << " х равно двум \n";

       else if (x == 3) cout << " х равно трём \n";

       else if (x == 4) cout << " х равно четырём \n";

       else cout << " х не находится между 1 и 4 \n";

}

return 0;

}

Запишите результат вывода на экран.

х не находится между 1 и 4

х равно единице

х равно двум

х равно трём

х равно четырём

х не находится между 1 и 4

 

Проверьте правильность вывода результатов

Предложение switch

Предложение switch в С++ предоставляет возможность выбора требуемого варианта из многих возможных. Другими словами, программа осуществляет выбор нужной альтернативы. То же самое достигается последовательностью вложенных предложений if, однако использование switch во многих случаях оказывается более эффективным.

Работает switch таким образом: значение выражения последовательно сравнивается с константами выбора в ветвях case . Когда обнаруживается константа, равная значению выражения, выполняется предложение, закреплённое за этой константой.

Общая форма предложения switch выглядит следующим образом:

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

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

последовательность предложений

break;

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

последовательность предложений

break;

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

последовательность предложений

break;

.

.

.

Default

последовательность предложений

}

Анализируемое выражение должно давать в результате либо символ, либо целочисленное значение (выражения с плавающей точкой недопустимы). Часто в качестве выражения, управляющего выбором, используется просто переменная. Константы в ветвях case должны быть либо целыми числами, либо символьными литералами.

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

Есть четыре существенных момента, которые следует иметь в виду при использовании предложения switch:

1. switch отличается от if в том отношении, что switch может анализировать выражение только на равенство константам выбора в ветвях case, в то время как для if условие выполнения может быть любым;

2. никакие две константы в предложении switch не могут иметь одно и то же значение. Правда предложение switch, входящее во внешнее switch, может иметь в ветвях те же константы;

3. предложение switch обычно более эффективно, чем цепочка вложенных if;

4. последовательности предложений в ветвях case не есть блоки. Однако, все предложения switch образуют блок.

Приводимая ниже программа демонстрирует использование switch.


Дата добавления: 2019-07-15; просмотров: 201; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!