Тематические поисковые системы
и сайты проекта Vedenin.ru:

Танцевальная поисковая система Энциклопедическая поисковая система Поисковая система программиста Книжная поисковая система Банковская поисковая система Музыкальная поисковая система Автомобильная поисковая система Спортивная поисковая система Поисковая система видео и фильмов
Поисковая система и Online учебник по программированию и веб - дизайну

Поиск для программиста

  1. Все сайты по теме
  2. Статьи и книги
  3. Форумы и блоги

Шпаргалки
(краткий синтаксис
разных языков)

Операции
Приоритеты
Типы данных
Операторы
Переменные
Функции
Классы
Математика
Строки
Память

Учебник
(Сравнительный анализ синтаксиса десятка языков)

О языках
Комментарии
IF
CASE
FOR
FOREACH
DO.. WHILE
With
Метки
GOTO
BREAK
Операции
Типы данных
Переменные
Видимость
Функциями
ООП
Исключения
#IF
Память
Матем.функции
Коллекции
Cтроки
БД.SQL

<<Cтатьи>>
C++58
Delphi 138
Java
155
C#
3
Visual Basic
47
PHP
63
JavaScript 69
Perl 15
ASP 23
Ассемблер 35
C++ 102
Java 29
C# 20
JavaScript 2
Perl 2



Оператор условия (оператор IF) в языках программирования C++,C#.Net,Deplhi,VFP,Transact-SQL,PL-SQL,VBScript,JavaScript,JScript,Visual Basic

3.1 Оператор условия (оператор IF)


Условный оператор это классика программирования, он есть в каждом языке. (собственно этот оператор есть даже в машинных кодах). Он позволяет выполнять определенный код, в зависимости от некоторого условия.

Есть два вида условных операторов:

  1. Операторы вида if ... else

  2. Операторы вида if ... elseif ... elseif ... else

1) Рассмотрим первый вид оператора, он присутствует в языках C++, Java, C#, VFP, Delphi:

Язык

С++,C#,Java,Transact-SQL

Delphi

VFP

Естественный язык
Описание

if (выражение1) оператор1;

[elseоператор2;]

if выражение1 Thenоператор1;

[elseоператор2;]

ifвыражение1 [then ]

операторы1

[else

операторы2]

endif

ЕСЛИ а больше 3,
ТО вывести OK!,
ИНАЧЕ вывести ERROR!,
Пример int i = 2;
if(i < 1){
   cout << 'i меньше 1!';
} else {
   cout << 'i больше или равно 1!';
}
i := 1;
if i < 1 Then begin
    Write(i);
end;
else Write( - i);
i = -3;
if i < 2 then
    MessageBox('истина!')
else
    MessageBox('ложь!')
endif
1). Если на улице дождь возьми зонт, иначе не бери.
2) На улице дождь!
Результат i больше или равно 1! - 1 истина! Нужно взять зонт!

Суть его, если условие в выражение1 истинно, то выполняется оператор1, если условие ложно, то выполняется оператор2.
Блок else в любом языке можно пропустить, тогда если условие выражения1 ложно просто ничего не будет выполнятся, сразу управление передается дальше. Например на языке C++ блок if без else:
 
int i = 1;
if(i == 10){
   cout << 'истина!';
}
Этот блок ничего не выведет на экран.

2) Рассмотрим второй вид оператора, он присутствует в языках Perl, PHP, Basic, его суть просто в добавлении любого количество блоков elseif к конструкции if .. else:

Язык

Perl,PHP

Альтернативный формат в PHP

Basic, PL\SQL,VBScript

Описание if (выражение1) оператор1;
[else if (
выражение2) оператор2;]

...


[else if (выражениеN) операторN;]

[else операторM;]

if (выражение1): операторы1;

[else if (выражение2):операторы2;]

...

[else if (выражениеN):операторыN;]

[else операторыM;] endif

if выражение1[then]

операторы1

[elseif выражение2 [then]

операторы2]

...

[elseif выражениеN

операторыN]

[else

операторыM]

endif <В PL\SQL - end if;>

Пример $i = 1;$j = 3;
if ($i >= 10) echo 'i больше или равно 10!';
else if ($j < 3) {echo 'j меньше 3,';echo 'i меньше 10!';}
else if ($j == 3) echo 'j равно 3!';
else echo 'неверные данные';
$i = 5;$j = 4;
if ($i >= 10): echo 'i больше или равно 10!';
else if ($j < 3): echo 'j меньше 3,';echo 'i меньше 10!';
else if ($j == 3): echo 'j равно 3!';
else echo 'неверные';echo ' данные!';
endif;
-
Результат j равно 3! неверные данные! -

В первом столбце таблицы записана стандартная форма оператора if в языке PHP ,а в втором его альтернативная форма (Разница между стандартной формой и альтернативной только в том что при записи нескольких операторов не нужны операторные скобки).

Отличие между синтаксисом Basic’a и PL\SQL в том, что последний закрывающий оператор в Basic’e endif, а в PL\SQL end if; .

Данная форма работает следующим образом, если выражение1 истинно, то выполняется оператор1,а все остальные операторы не выполняются, если нет, то проверяется выражение в первом блоке elseif, если оно истинно, то выполняется оператор этого блока, если нет проверяется следующий блок elseif и т.д. Количество блоков elseif не ограниченно. Выполняется оператор только одного блока. Если все выражения в if и elseif ложны, только тогда выполняется оператор в блоке else, если этот блок существует. Использования блоков elseif необязательно, и если не указать ни одного блока elseif получится первая форма if ... else.

Внимание:

1) В большинстве языков выражения в if могут быть только логическими (т.е. могут принимать значения только true или false), но есть исключения: это языки C++,PHP, Perl и VBScript. В этих языках выражение может быть не только логическим, но почти любого типа (и хотя при написании программы это довольно удобно, но это, к сожалению, является причиной дополнительных ошибок). Рассмотрим, что будет истиной, а что ложью при использовании типов, отличных от логических в каждом из этих языков:

a) В С++ : Выражение считается ложным, если это 0, указатель, не указывающий ни на какой объект, пустая строка. Иначе оно истинно. В выражении может быть использованы данные логического, арифметического типа, указатели или тип, который может быть неявно приведен к арифметическому или логическому типу.

б) В PHP: Выражение считается ложным, если это 0, пустая строка, строка “0”, NULL, массив без элементов, пустой объект (не указывающему на реальный объект). Иначе оно истинно.

в) В Perl: Выражение считается ложным, если оно равно 0 или пустой строке. Иначе оно истинно.

г) В VBScript: Выражение считается ложным, если оно равно 0, пустой строке, NULL, пустому объекту (не указывающему на реальный объект). Иначе оно истинно.

2) Очень осторожно сравнивайте значение чисел с плавающей точкой, т.к. в этом формате числа хранятся неточно, а сравнение выполняется точно, например числа 3,99999999999999 и 4 это два разных числа. Поэтому лучше использовать > и < при сравнении и не использовать операторы == и #, например вместо x == y, можно использовать (x – y < 0.00001) || (y – x < 0.00001)1.

3) В Perl:

a) везде необходимо использовать операторные скобки {}, даже если оператор только один он должен быть заключен в операторные скобки. Кроме, того ключевое слово if может быть заменено на unless, тогда оператор1 будет выполнятся, только если выражение1 ложно (т.е. unless (выражение1) оператор1; аналогично if (!(выражение1)) оператор1; ).

б) Вместо простого оператора if(выражение1) оператор1; можно использовать другую форму оператор1; if(выражение1); (т.е. сначала идет оператор или блок операторов, а уже потом if, if(выражение1) называется модификатором оператора). При этом, также можно вместо if использовать unless (см. пункт а).


Ваш комментарий



Добавить эту поисковую систему в Ваш Google Bar Разделы учебника
<> Хостинг сайта: EOMY.NET