4864

Условные операторы и операторы цикла

Лекция

Информатика, кибернетика и программирование

Условные операторы и операторы цикла. Условные операторы. Язык С++ располагает несколькими условными операторами, позволяющими организовать ветвление в программе. Оператор if реализует простое ветвление, относительно выполнения условия: if ( условие...

Русский

2012-11-28

40.5 KB

9 чел.

Условные операторы и операторы цикла.

Условные операторы.

Язык С++ располагает несколькими условными операторами, позволяющими организовать ветвление в программе.

Оператор if реализует простое ветвление, относительно выполнения условия:

if ( условие )

 оператор

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

if ( x > 0 )

 x++;

 if ( x < 0 )

{

 x--;

 y++;

}

Кроме того, существует расширенный вариант условного оператора:

if ( условие )

 оператор_1

 else

 оператор_2

 

Если условие истинно (т.е значение выражения условие отлично от 0), выполняется оператор_1, в противном случае  оператор_2. Следующий пример демонстрирует использование условного оператора в программе, реализующей отыскание действительных корней квадратного уравнения:

#include <iostream>

int main()

{

setlocale( 0, "Rus" );

 double a, b, c;

std::cout << "Коэффициенты полинома:" << std::endl;

std::cin >> a >> b >> c;

 double D = b*b - 4*a*c;

 if ( D > 0.0 )

{

 double x1 = ( -b + std::sqrt( D ) ) / ( 2*a );

 double x2 = ( -b - std::sqrt( D ) ) / ( 2*a );

 std::cout << "Два простых корня: " << x1 << " " << x2 << std::endl;

 }

 else if ( D == 0.0 )

{

 double x = -b / ( 2*a );

 std::cout << "Один корень кратности 2: " << x << std::endl;

}

 else

 std::cout << "Действительных корней нет" << std::endl;

system( "pause" );

 return 0;

}

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

условие ? выражение_1 : выражение_2;

В такой форме его действие аналогично оператору ifelse, однако, в отличие от последнего, тернарный оператор возвращает значение. В следующем примере переменная x получит значение a+b или a-b в зависимости от четности переменной y:

double x = ( y % 2 ) ? ( a + b ) : ( a - b );

В случае необходимости реализации множественного ветвления, удобно использовать оператор switch:

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

{

 case ( выражение_1 ):

 блок_из_одного_или_нескольких_операторов_1;

 break;

 case ( выражение_2 ):

 блок_из_одного_или_нескольких_операторов_2;

 break;

 default:

 блок_из_одного_или_нескольких_операторов_n;

 break;

}

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

 Операторы цикла.

Циклы позволяют организовать повторное выполнение однотипных действий.

Цикл for имеет следующий синтаксис:

 for ( выражение_1; выражение_2; выражение_3 )

 оператор

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

В следующем примере цикл for реализует простейший алгоритм разложения числа на множители прямым перебором всех его делителей.

 int N = 1234321; // Заданное число

 

 for ( int T = N, i = 2; i <= T; )

 {

 if ( T % i == 0 ) // i - делитель

 {

  std::cout << i << " ";

  T /= i; // Делим T на i

 }

 else  // i не является делителем

  ++i; // переходим к следующему i

}

Цикл while описывается следующим образом:

while ( условие )

 оператор

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

char c = 0;

while( ! isalpha( c )  )

{

 std::cout << "Введите c: ";

 std::cin >> c;

}

Цикл dowhile выглядит так:

do

 оператор

 while ( условие );

и действует подобно while, разница заключается в том, что здесь проверка выражения условие выполняется после каждой итерации цикла, поэтому оператор (тело цикла) dowhile в любом случае будет выполнено, по крайней мере, один раз.


 

А также другие работы, которые могут Вас заинтересовать

40334. ГАЛЛЮЦИНАЦИИ 30.5 KB
  Различают: галлюцинации в зависимости от органов чувств: зрительные обонятельные вкусовые тактильные галлюцинации общего чувства висцеральные и мышечные. истинные и псевдогаллюцинации. калейдоскопические интерметаморфоз Слуховые галлюцинации бывают фонемы патологическое восприятие слов речей разговоров. Зрительные галлюцинации могут быть либо 1.
40335. Гебефренная шизофрения 27 KB
  Различие же их определяются картиной манифестного психоза который при простой шизофрении не возникает.1 ставится при наличии общих критериев шизофрении и: 1 одного из следующих признаков а отчетливое и стойкое уплощение или поверхностность аффекта б отчетливая и стойкая неадекватность аффекта а также: 2 одного из двух других признаков: а отсутствие целенаправленности собранности поведения б отчетливые нарушения мышления проявляющиеся в бессвязной или разорванной речи; 3 галлюцинаторнобредовые феномены могут присутствовать в...
40336. Действие нейролептиков 31.5 KB
  Основные побочные эффекты при лечении нейролептиками образуют нейролептический синдром. Иногда отмечаются холинолитические эффекты расстройство зрения дизурические явления. Иногда возникают побочные эффекты в виде фотосенсибилизации дерматитов пигментации кожи; возможны кожные аллергические реакции. Побочные эффекты связанные с повышением в крови пролактина проявляются в виде дисменореи или олигоменореи псевдогермафродитизма у женщин гинекомастии и задержки эякуляции у мужчин снижении либидо галактореи гирсутизма.
40337. Деменция 26 KB
  Понимание сложных понятий затруднено но общая оценка ситуации верна критика к болезни сохранена отмечается подавленность слезливость. Критика болезни отсутст. Критика к болезни сниж сосуществование с болезнью. Безразличие к болезни.
40339. Расстройства речи 41 KB
  Ограничена подвижность органов речи мягкого нёба языка губ вследствие чего затруднена артикуляция. не сопровождается распадом речевой системы: нарушения восприятия речи на слух чтения письма. нередко приводит к нарушению произнесения слов и как следствие к нарушению чтения и письма а иногда к общему недоразвитию речи.
40340. Дисморфомания 30 KB
  Центральное расстройство подозрение со страхом дисморфофобия или убежденность дисморфомания в наличии физического недостатка может развиваться медленно посте пенно или возникнуть внезапно по типу озарения. Необходимо различать дисморфоманию как симптом пограничных состояний затяжные реактивные состояния эндореактивная подростковая дисморфомания особые развития личности и как проявление шизофрении.
40341. ИНФЕКЦИОННЫЕ ПСИХОЗЫ 28 KB
  Психические нарушения при инфекциях зависят от природы инфекционного заболевания особенностей реагирования на болезнь центральной нервной системы а также от локализации болезненного процесса. Психические нарушения при общих инфекциях: в основе лежат психопатологические расстройства относящиеся к экзогенным типам реакции: делирий аменция сумеречное состояние эпилептиформное возбуждение галлюциноз. Затяжных психозов протекающих без нарушения сознания в виде галлюциноза апатического ступора когфабулеза. психические нарушения при...
40342. Ипохондрический синдром 28 KB
  Возможны паранойяльный ипохондрический бред а также состояния в которых ипохондрические расстройства тесно связаны с явлениями психического автоматизма. Ипохондрический бред может проявляться и убежденностью больных в том что организм разрушается вирусами микробами насекомыми которые ввели им преследователи бред одержимости. Ипохондрический бред может подвергаться фантастическому преобразованию а иногда фантастические представления достигают степени громадности. Ипохондрический синдром в сочетании с синдромом навязчивости бывает при...