Программирование - на главную
    Главная   |    Рассылки   |    Форум программистов

  Программирование в Интернет
PHP
ASP .NET
Perl
SSI
JavaScript
CSS
HTML
Разное
  Программирование под Windows
Pascal, Delphi
C++, Builder
BIOS
Алгоритмы
Разное
  Программирование графики
DirectX
OpenGL
Графика
  Разное
Форум программистов
Партнерские программы
Создать интернет-магазин
Рассылки
Написать
  Навигация: Главная > Программирование под Windows > Pascal, Delphi > Программирование для начинающих от CompDocs - 4  

Программирование для начинающих от CompDocs - 4

Итак, продолжим. Сегодня мы рассмотрим такие понятия, как оператор условия.

Оператор условия служит для проверки чего-либо по указанному условию. Например, можно проверить больше ли число, находящееся в переменной A числа 10 так:

if a>10 then

В данной конструкции собственно условным оператором является слово if. then указывает что делать, если условие верно, т.е. а больше 10. Читать такой код можно так: Если число, хранящееся в переменной, а больше 10, тогда...

После тогда следует код. Причем данный будет выполняться только тогда, когда условие будет верно, т.е. когда а будет больше 10. Напомню, что, как и в циклах (см. Программирование для начинающих от CompDocs - 3 в CompDocs#19), выполнятся после выполнения условия будет лишь одна строчка - та, что за словом then. Далее продолжается нормальное выполнение программы - т.е. все, что написано далее. При этом стоит отметить, что если условие не выполняется, код за словом then тоже выполнятся, не будет - программа его просто пропустит. Если по условию нужно выполнить несколько строк кода, объединяем их в begin ... end;

Кроме того, обратите внимание на классическую схему оператора if:

if (условие выполняется) then
(код, который исполняется при выполнении условия - назовем Х)
...
(тут идет весь остальной код программы - назовем Y)
...

Т.е. если условие, верно, выполняется код Х, а затем, разумеется, продолжается выполнение программы, т.е. код Y. Если же условие не выполнено - тогда вся разница в том, что не выполняется код Х - сразу идет черед Y. Но бывает так, что нужно чтобы если условие выполняется, выполнялся какой-то код Х_1, а за тем все остальное, т.е. Y, а если условие не выполняется - то выполняется код Х_2, а затем Y, вместо того чтобы сразу Y. Конечно, такую проблему можно решить, использовав сразу два оператора if, например первым проверить больше ли а 10 - если да, выполнить код Х_1 и продолжить далее - т.е. Y. После него идет второй оператор - проверяет, не меньше ли а 10 или не равно оно 10. Если да - выполняется условие Х_2, а далее, конечно же, Y.

При этом следует отметить, что если число а не изменять в ходе проверок, то все будет всегда работать правильно - будет выполняться всегда одно и только одно из условий - а не может быть одновременно больше и меньше (равным) 10. Так что такой метод накладывает некоторые ограничения. Представим ситуацию, что при первой проверке у нас а=11. Т.е. условие выполняется и идет на выполнение код Х_1, в котором мы меняем а, например на 5. При проверке второго условия, если бы а не было изменено, все было бы нормально. Но мы его изменили, а=5 и выполняется и второе условие! Т.е. вместо х_1 - Y или Х_2 - Y (в зависимости от значения а), получаем Х_1 - Х_2 - Y !!!

Чтобы этого избежать, а также для упрощения кода, используйте стандартный оператор else - он выполнит свой код тогда, когда условие не выполнено. Пример:

var a:integer;
begin
writeln('Введите а');
read(a);
if a>10 then
writeln('Вы ввели число большее 10')
else
writeln('Вы ввели число меньшее или равное 10');
end.

Обратите внимание на то, что в строчке, предшествующей оператору else не нужен оператор ";" (точка с запятой).

Продолжение следует.

© http://www.ru-coding.com/
Условия использования материалов сайта.
  Счетчики и ссылки

Rambler's Top100


  На правах рекламы
Copyright © 2005-2012 Ru-Coding.com - все о программировании.