پیاده‌سازی یک تابع شرطی بدون استفاده از جملهٔ شرطی

به توابع زیر دقت کنید (x شرط توابع است):

int conditionalFunction1(int x, int a, int b)
{
    return x ? a : b;
}

int conditionalFunction2(int x, int a, int b)
{
    return !!x * a + !x * b;
}

تابع conditionalFunction1 دارای 3 پارامتر می‌باشد. این تابع با استفاده از (?:) Conditional Operator که بنام Ternary Operator نیز شناخته می‌شود، مقدار x را بررسی می‌کند. اگر x عددی غیر صفر باشد، مقدار خروجی برابر با a می‌باشد؛ و در غیر این صورت (اگر x صفر باشد)، مقدار خروجی برابر با b می‌باشد.

با کمی دقت در تابع conditionalFunction2 متوجه می‌شوید که بدون استفاده از هرگونه جملهٔ شرطی، همان مقدار بازگشتی بدست می‌آید. توجه داشته باشید که مقدارهای NOT x (!x) و NOT NOT x (!!x) همواره برابر با صفر یا یک است. با این نکته براحتی بنحوهٔ کار کردن این تابع پی می‌برید. تابع conditionalFunction2 همان تابع conditionalFunction1 است اما به زبانی دیگر.