Запоздало вставлю свои 5 копеек. Давайте просто сравним два участка кода:
PHP код:
static void Job7(Args _args)
{
int a = 12;
boolean in(anyType _x, anyType _start, anyType _end)
{
return _start <= _x && _x <= _end;
}
;
switch(true)
{
case a == 1:
print "1"; break;
case a == 2:
print "2"; break;
case in(a, 5, 10):
print "5..10"; break;
case in(a, 11, 15):
print "11..15"; break;
}
pause;
}
с
PHP код:
static void Job7(Args _args)
{
int a = 12;
;
if ( a == 1 )
print "1";
else if ( a == 2 )
print "2";
else if ( 5 <= a && a <= 10 )
print "5..10";
else if ( 11 <= a && a <= 15 )
print "11..15";
pause;
}
Другими словами, условный оператор case выгоден, когда он выглядит короче и понятнее аналогичной по смыслу последовательности if / else if.
НО В C-ПОДОБНЫХ ЯЗЫКАХ ЭТО НЕ ТАК! Во всех.

Поэтому рекомендация не пользоваться case справедлива и для X++. Избегайте case и будет вам счастье.