Мегаобучалка Главная | О нас | Обратная связь


Использование оператора условного перехода



2019-08-13 274 Обсуждений (0)
Использование оператора условного перехода 0.00 из 5.00 0 оценок




Оператор условного перехода имеет следующий формат записи:

If (L)

оператор 1 ;

Else

Оператор 2 ;                                       ,

где L ¾ выражение. Если значение этого выражения “истина” (не нуль ), то выполняется оператор1, если же оно “ложь”, то выполняется оператор2; в случае, когда выражение ложно и отсутствует ветвь else,  ¾ выполняется следующий оператор.

Например, оператор условного перехода может иметь вид:

if ( i < j )

   i++;

Else

 {

 j = i - 3;

  i ++;

 }

 

 

Использование оператора выбора

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

Switch (L)

{

case к .в .1: оператор 1; [break;]

case к.в.2: оператор 2; [break;]

. . . . . . . . . . . . . . . . . . . . . . . . .

case к .в .n: оператор n; [break;]

[default: оператор n+1;]

}                                          ,

где switch, case, default ¾ служебные слова;

     break ¾ оператор (необязательный) прерывания выполнения операторов switch;

L ¾ любое выражение одного из целых типов;

к.в.1,…, к.в.n ¾ константные выражения, которые не могут повторяться и не могут содержать переменных или вызовов функций. Обычно это целая или символьная константа;

оператор 1;. . . ¾ любые операторы С++.

Выполняется этот оператор следующим образом: вычисляется значение выражения L, затем это значение сравнивается (последовательно сверху вниз) со значениями константных выражений к.в.1,..  и при совпадении значений L и одного из к.в. будут выполнятся все операторы начиная с соответствующей ветви, если в конце ветви нет оператора break. При наличии оператора break, выполняется только оператор, находящийся в соответствующей ветви и управление передаётся оператору, находящемуся за пределами оператора switch.

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

В случае, когда в этом операторе нет ветви default ( она не обязательна), и значение L не совпадает ни с одним из значений к.в. , осуществляется выход из оператора switch.

Можно привести следующий фрагмент   программы с использовани-ем оператора switch:

int a=2;

Switch ( a )

{

case 1: func1( );

case 2: func2( );

case 0:

case 4: func3( );

default: printf ("gud bay \n");

}

 

При выполнении этого оператора будут реализованы функции: func2, func3 и default: printf ("gud bay \n");                         .

Данный пример можно записать так же в следующем виде:

int a=2;

Switch (a)

{

case 1: func1( ); break;

case 2: func2( ); break;

case 0:

case 4: func3( ); break;

default: printf ("gud bay \n");

}                                                           .

В такой реализации будет выполнена только ветвь case 2: func2( ); break;  и выход из оператора switch.

 

 

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

В языке С++ имеется три оператора цикла: while, do, for.

Оператор цикла  while L  с предусловием ¾ любой простой, составной или пустой оператор, здесь L-любое допустимое выражение.

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

Так для примера 1.5 программа с использованием оператора while будет иметь вид:

// P1_6.CPP ¾ вычисление функции y = a* x* x – sin (x)

           //                    с использованием оператора цикла while

            # include < stdio . h>

#include <math.h>

main ( )

{

float a, x, y;

a = 10 . 3 ;

x = - 1 ;

while ( x <= 1)

{

y = a * x * x - sin(x)

printf ("x = % 4 f, y = % 6 f \n", x, y) ;

x = x + 0.2;

}

}

 

Оператор цикла for  имеет следующую форму записи:

 

for ( [ выр1; ] [ выр2; ] [ выр3 ] ) оператор;,

где  выр1 ¾ выражение инициализации обычно используется для установки начального значения; это выражение присваивания (необязательный параметр);

    выр2 ¾ выражение условия , определяющее при каком условии цикл будет повторяться (необязательный параметр);

    выр3 ¾ выражение итерации, определяющее шаг изменения перемен-ных, управляющих циклом после каждого выполнения (необязательный параметр).

Этот оператор реализуется следующим образом:

¾ сначала выполняется выражение инициализации ( эта нотация может быть выполнена до оператора for );

¾ вычисляется условное выражение;

¾ если результат условного выражения “истина” (не равно нулю ), то выполняется оператор цикла;

¾ вычисляется выражение итерации;

¾ вновь проверяется условие;

¾ как только условное выражение становится равным нулю “ложь”, управление передается оператору, следующему за оператором цикла for .

Поскольку проверка условия производится перед циклом, то цикл может ни разу не выполняться, если условие сразу будет ложным.

Проиллюстрируем использование оператора  цикла for для   ранее рассматриваемого примера 1.5:

    // P1_7.CPP ¾ вычисление функции y = a * x * x - sin(x)

   //                    с использованием оператора цикла for

           # include < stdio . h>

#include <math.h>

Main ( )

{

float a, x, y;

a = 10.3 ;

for ( x = -1 ; x <= 1; x = x + 0.2 )

{

y = a * x * x - sin(x) ;

printf ( "x = % 4 f, y = % 6 f \n", x, y ) ;

x = x + 0.2;

}

}

 

В операторе for  может использоваться несколько переменных, управ-ляющих циклом, а любые выражения могут отсутствовать, например :

 

int = i;

for ( ; i < 4; i++)

      или

int k, n, y;

for ( k = 0, n = 20; k <= n; k++, n-- )

y = k * n;

В этом операторе используется два выражения инициализации и два выражения итерации. Выполняется такой оператор следующим образом: сначала присваиваются значения переменным k = 0 и n = 20. Затем происходит сравнение k <= n. Если это условие имеет значение “истина”,то будет выполняться тело цикла, а затем выражения k++ и n-- ;если же условие не выполняется, то цикл прекращается.

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

Do оператор

While (выражение);                                   ,

где выражение  ¾ условное выражение.

 

 

Выполняется оператор do следующим образом: сначала осуществляется вход в тело цикла и выполняется оператор (он может быть простой или составной), после того проверяется условие и, если оно выполняется, т.е. “истина” ( не равно нулю), то цикл повторяется, а если “ложь” ¾ осуществляется выход из цикла. С использованием оператора цикла do пример 1.5 будет иметь вид:

 

// P1_8.CPP ¾ вычисление функции y = a * x * x - sin(x)

   //                    с использованием оператора цикла do

           # include < stdio . h>

#include <math.h>

  main ( )

{

  float a, x, y;

  a = 10.3 ;

  x = -1 ;

  do

        {

         y = a * x * x - sin ( x ) ;

         printf ( " x = % 4 f, y = % 6 f \n ", x, y ) ;

         x = x + 0.2;

         }

   while ( x <= 1 );

}    

 

1.5 Контрольные вопросы

 

    1. Каковы правила записи программы на языке С++ ?

    2. Какие данные обрабатываются с помощью языка С++ ?

    3. Как задаются типы данных в С++ ?

    4. Что такое константа в С++, приведите примеры констант?

    5. Что называется переменной в С++?

    6. Как обеспечивается организация ввода- вывода ?

    7. Как организуется форматизованый вывод результатов ?

    8. Для чего нужны операторы условного и безусловного перехода и как они работают ?

    9. Как работает оператор switch ?

   10. Какие операторы цикла вы знаете, как работает оператор цикла for ?

   11. Каковы особенности работы оператора цикла do и while ?

 

 




2019-08-13 274 Обсуждений (0)
Использование оператора условного перехода 0.00 из 5.00 0 оценок









Обсуждение в статье: Использование оператора условного перехода

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (274)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)