Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / C / C++ / Введение в язык C++ / Выражения и операторы /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Сводка операторов - Программирование от RIN.RU
Сводка операторов



Проверки


Проверка значения может осуществляться или оператором if, или оператором switch:


if ( выражение ) оператор
if ( выражение ) оператор else оператор
switch ( выражение ) оператор


В C++ нет отдельного булевского типа. Операции сравнения


== != < <= > >=


возвращают целое 1, если сравнение истинно, иначе возвращают 0. Не так уж непривычно видеть, что ИСТИНА определена как 1, а ЛОЖЬ определена как 0.
В операторе if первый (или единственный) оператор выполняется в том случае, если выражение ненулевое, иначе выполняется второй оператор (если он задан). Отсюда следует, что в качестве условия может использоваться любое целое выражение. В частности, если a целое, то


if (a) // ...


эквивалентно


if (a != 0) // ...


Логические операции


&& || !


наиболее часто используются в условиях. Операции && и || не будут вычислять второй аргумент, если это ненужно. Например:


if (p && 1count) // ...


вначале проверяет, является ли p не нулем, и только если это так, то проверяет 1count.


Некоторые простые операторы if могут быть с удобством заменены выражениями арифметического if.


Например:


if (a <= d)
max = b;
else
max = a;


лучше выражается так:


max = (a<=b) ? b : a;


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


Некоторые простые операторы switch можно по-другому записать в виде набора операторов if.


Например:


switch (val) {
case 1:
f();
break;
case 2;
g();
break;
default:
h();
break;
}


иначе можно было бы записать так:


if (val == 1)
f();
else if (val == 2)
g();
else
h();


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


Заботьтесь о том, что switch должен как-то завершаться, если только вы не хотите, чтобы выполнялся следующий case.


Например:


switch (val) { // осторожно
case 1:
cout << "case 1\n";
case 2;
cout << "case 2\n";
default:
cout << "default: case не найден\n";
}


при val==1 напечатает


case 1
case 2
default: case не найден


к великому изумлению непосвященного. Самый обычный способ завершить случай - это break, иногда можно даже использовать goto.


Например:


switch (val) { // осторожно
case 0:
cout << "case 0\n";
case1:
case 1:
cout << "case 1\n";
return;
case 2;
cout << "case 2\n";
goto case1;
default:
cout << "default: case не найден\n";
return;
}


При обращении к нему с val==2 выдаст


case 2
case 1


Заметьте, что метка case не подходит как метка для употребления в операторе goto:


goto case 1; // синтаксическая ошибка


<<<  НазадВперед  >>>
 1  2  3 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Настольный калькулятор

Краткая сводка операций

Комментарии и Выравнивание

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь