четверг, 3 сентября 2009 г.

Условие с запятой.

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

#include <iostream>

using namespace std;

void foo(int a)
{
if ( (0==a and (
cout << "a=zero",
cout << endl,
true ) )
or
(1==a and (
cout << "a=one",
cout << endl,
true) )
or
(2==a and (
cout << "a=two",
cout << endl,
true) ) );
}

int main()
{
foo(0);
foo(1);
foo(2);
foo(3);
foo(5);

return 0;
}

Думаю всем ясно что выведет программа, а если не ясно, то попробуйте её запустить ;-)

Таким образом, очевидно, что else, как впрочем и тело условного оператора по сути своей синтаксический сахар чистой воды.
Вложенные if'ы -- тоже по сути синтаксический сахар.

Комментариев нет: