Студопедия Главная Случайная страница Обратная связь

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

УСЛОВНЫЙ ОПЕРАТОР





 

 

if(условие) оператор;

 

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

 

Работает так:

 

Вычисляется условие.

 

Если оно истинно, то выполняется оператор,

затем выполняется продолжение.

 

Если оно ложно, то сразу выполняется продолжение,

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

 

Если нам надо выполнить при истинности условия несколько операторов,

мы должны заключить их в скобки {... } - это так называемый

"составной оператор".

 

if(условие) {

оператор1;

оператор2;

...

}

продолжение

 

После } точка с запятой НЕ СТАВИТСЯ (можно и поставить, но не нужно).

 

Условный оператор изображают на схемах так:

 

|

|

|

----------------

---| ЕСЛИ условие |----

| ---------------- |

| |

V V

истинно ложно

| |

V |

------------ |

| оператор | |

------------ |

| |

------->-------<-------

|

|

V

продолжение

|

 

Имеется вторая форма, с частью "иначе":

 

if(условие) оператор_если_истинно;

else оператор_если_ложно;

 

"или то, или другое" (но не оба сразу)

 

 

|

|

|

----------------

---| ЕСЛИ условие |-----------

| ---------------- |

| |

V V

истинно ложно

| |

V |

------------------------- -----------------------

| оператор_если_истинно | | оператор_если_ложно |

------------------------- -----------------------

| |

------->-------<--------------

|

|

V

продолжение

|

 

Пример1:

 

if(x > 10)

printf("Икс больше десяти\n");

 

Пример2:

 

int x, y, z;

 

if(x < y) z = 1;

else z = 2;

 

Условия:

 

В качестве условий могут использоваться операторы СРАВНЕНИЯ

(сравнивать можно переменные, выражения, константы)

 

x < y меньше

x > y больше

x <= y меньше или равно

x >= y больше или равно

x == y равно

x!= y не равно

 

Все эти операторы в качестве результата операции сравнения выдают

1, если сравнение истинно

0, если оно ложно.

 

Таким образом, на самом деле условный оператор работает так:

 

if(условие)....

 

Если условие есть НОЛЬ - то условие считается ложным.

Если условие есть НЕ НОЛЬ а... -2, -1, 1, 2, 3,... - то условие истинно.

 

Это определение.

 

Из него в частности вытекает, что сравнение с целым нулем можно опускать:

 

if(x!= 0)...; сокращается до if(x)...;

if(x == 0)...; сокращается до if(!x)...;

 

Пример:

 

int x, y, z;

 

if(x == 1){ y = 2; z = x + y; }

else { y = 1; z = x - y; }

 

 

Пример со вложенными условными операторами:

 

if(x == 1){

printf("Икс равен 1\n");

if(y == 2){

printf("Игрек равен 2\n");

}

} else {

printf("Икс не равен 1\n");

}

 

Часто применяется последовательность условных операторов,

перебирающая различные варианты:

 

if(x == 1)

printf("Икс равен 1\n");

else if(x == 2)

printf("Икс равен 2\n");

else if(x == 3){

printf("Икс равен 3\n");

y = 1;

} else

printf("Непредусмотренное значение икс\n");

 

Самое сложное - привыкнуть к тому, что сравнение обозначается знаком ==,

а не =

Знак = означает "присвоить значение", а не "сравнить на равенство".

 

ЦИКЛ while ("до тех пор, пока истинно")

 

 

while(условие)

оператор;

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

 

или

 

while(условие){

операторы;

...

}

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

 

|

V

|

+------>--+

| |

| V

П | ---------------------

о | | проверить УСЛОВИЕ |-------> если ложно (нуль)

в A --------------------- |

т | | |

о | V |

р | если истинно (не нуль) |

и | | |

т | V |

ь | оператор V

| | |

| | |

+-----<---+ |

|

+-------<---------------------+

|

V

продолжение

 

Пример:

int x;

 

x = 10;

while(x > 0){

printf("x=%d\n", x);

x = x - 1;

}

printf("Конец.\n");

printf("x стало равно %d.\n", x); /* печатает 0 */

 

"Цикл" он потому, что его тело повторяется несколько раз.

 

Чтобы цикл окончился, оператор-тело цикла должен менять

какую-то переменную, от которой зависит истинность условия повторений.

 

ОПЕРАТОРЫ "И, ИЛИ, НЕ";

 

 

Условия могут быть сложными.

 

ЕСЛИ красный И вес < 10 ТО...;

ЕСЛИ красный ИЛИ синий ТО...;

ЕСЛИ НЕ красный ТО...;

 

На языке Си такие условия записываются так:

 

if(условие1 && условие2)...; /* "И" */

if(условие1 || условие2)...; /* "ИЛИ" */

if(! условие1)...; /* "НЕ" */

 

Например:

 

if(4 < x && x <= 12)...;

 

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

 

if(4 < x <= 12)...;

 

ибо язык программирования Си НЕ ПОНИМАЕТ двойное сравнение!

 

Еще примеры:

 

if(x < 3 || y > 4)...;

 

if(! (x < 3 || y > 4))...;

 

ЦИКЛ for ("для каждого")

 

 

Этот цикл является просто иной записью одного из вариантов цикла while.

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

не "пока истинно условие", а "выполнить N-раз".

 

У такого цикла есть "переменная цикла" или "счетчик повторений".

 

int i;

 

i = a; /* начальная инициализация */

 

while(i < b){

 

тело_цикла;

 

i += c; /* увеличение счетчика */

}

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

 

переписывается в виде

 

int i;

 

for(i=a; i < b; i += c)

тело_цикла;

 

 

тело_цикла будет выполнено для значений i

a

a+c

a+c+c

...

 

пока i < b

 

В простейшем случае

 

for(i=1; i <= N; i++)

printf("i=%d\n", i);

 

i означает "номер повторения".

 

Такой цикл служит для повторения СХОЖИХ действий НЕСКОЛЬКО раз

с разным значением параметра.

 

ОПЕРАТОР break ("вывалиться из цикла")

 

 

Оператор break заставляет прервать выполнение тела цикла

и сразу перейти к продолжению программы.

 

while(условие1){

операторы1;

 

if(условие2)

break; ------->----+

|

операторы2; |

} |

...продолжение...<--------<---------+

 

и

 

for(i=0; условие1; i++){

операторы1;

 

if(условие2)

break; ------->----+

|

операторы2; |

} |

...продолжение...<--------<---------+

 

 

Этот оператор позволяет организовывать дополнительные

точки выхода из цикла (при дополнительных условиях).

 

Пример:

 

for(i=0; i < 20; i++){

printf("i=%d\n", i);

if(i == 7){

printf("break loop!\n");

break; /* вывалиться из цикла */

}

printf("more\n");

}

printf("finished, i=%d\n", i); /* печатает 7 */

 

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

 

for(;;){ /* заголовок бесконечного цикла */

операторы1;

 

if(условие2)

break; ------->----+

|

операторы2; |

} |

...продолжение...<--------<---------+

 

Здесь в самом заголовке цикла НЕ ПРОВЕРЯЕТСЯ НИКАКИХ УСЛОВИЙ,

такой цикл продолжается бесконечно.

Условие продолжения считается всегда истинным.

 

Единственный способ выйти из него -

это сделать break (при каком-то условии) в теле цикла, что и написано.

 

Бесконечный цикл можно также организовать при помощи

while(1){

...

}

 







Дата добавления: 2015-03-11; просмотров: 506. Нарушение авторских прав; Мы поможем в написании вашей работы!




Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


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


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Билет №7 (1 вопрос) Язык как средство общения и форма существования национальной культуры. Русский литературный язык как нормированная и обработанная форма общенародного языка Важнейшая функция языка - коммуникативная функция, т.е. функция общения Язык представлен в двух своих разновидностях...

Патристика и схоластика как этап в средневековой философии Основной задачей теологии является толкование Священного писания, доказательство существования Бога и формулировка догматов Церкви...

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

Условия, необходимые для появления жизни История жизни и история Земли неотделимы друг от друга, так как именно в процессах развития нашей планеты как космического тела закладывались определенные физические и химические условия, необходимые для появления и развития жизни...

Метод архитекторов Этот метод является наиболее часто используемым и может применяться в трех модификациях: способ с двумя точками схода, способ с одной точкой схода, способ вертикальной плоскости и опущенного плана...

Примеры задач для самостоятельного решения. 1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P   1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P...

Studopedia.info - Студопедия - 2014-2025 год . (0.01 сек.) русская версия | украинская версия