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

Составные операторы условия

Читайте также:
  1. I. Работы с тяжелыми и вредными условиями труда
  2. II. Порядок и условия принятия на учет для получения единовременной социальной выплаты
  3. II. Условия предоставления коммунальных услуг
  4. III. Порядок и условия проведения олимпиады
  5. III. Условия договора, содержащего положения о предоставлении коммунальных услуг, и порядок его заключения
  6. IV. Требования к условиям реализации основной образовательной программы начального общего образования
  7. Turbo Pascal. Операторы цикла.

Иногда при решении задач возникает ситуация, когда в качестве операторов, содержащихся в ветвях, могут, в свою очередь, быть другие операторы условия. Их называют составными операторами. Причем количество вложений или, как еще говорят, уровней вложений может быть несколько. Теоретически это количество не ограничено, но практически это ограничение определяется объемом оперативной памяти компьютера, а, главное, удобством чтения и восприятия такого оператора. На практике используют не более трех вложений. Например, вычислить значения нелинейной функции у = f(х), график которой представлен на рис.12.1.

y

 

a

 

- b b x

 

– а

Рис. 12.1 График функции

 

 

 

+ _

 

+

 

 

 
 

 


 

Рис. 12.2. Фрагмент блок – схемы вычисления функции

 

Из приведенного фрагмента блок–схемы видно, что в альтернативной ветви «НЕТ» условия первого уровня вложен другой оператор условия (второго уровня). Запись этого фрагмента с помощью оператора условия будет иметь вид:

 

if ((x > – b) && (z < b)) y = a/b*x;

else if (x < = – b) y = – a;

else y = a;

Здесь в альтернативной ветви else первого оператора условия вложен другой оператор условия.

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

 

 

_

 

+

_ if (a > b)

{

+ if (b > 0) k++;

}

else k – –;

 
 


 

Рис.12.3. Фрагмент блок – схемы вычисления функции

 

Здесь вложенный оператор условия заключен в фигурные скобки и расположен в альтернативной ветви, но собственной альтернативной ветви не имеет. Фигурные скобки в этом случае играют важную роль.Дело в том, что компилятор языка С++ автоматически подсоединяет альтернативную ветвь else к основной ветвиближайшего оператора условия. Поэтому запись без фигурных скобок вида:

if (a > b)

if (b > 0) k ++;

else k – –;

соответствовала бы алгоритму, приведенному на рис.12.4.

Как видно из рисунка этот алгоритм отличается от предыдущего и искажает логику вычислений, а, следовательно, влияет на результат.

 
 

 


 

+

 

+

 

Рис.12.4. Фрагмент алгоритма.

 

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


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


<== предыдущая страница | следующая страница ==>
Альтернативный оператор условия.| ОРХОНО-ЕНИСЕЙСКАЯ ПИСЬМЕННОСТЬ.

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