Чем красивее всего заменить пачку if-ов?
От: trial  
Дата: 23.06.05 10:38
Оценка:
Всем привет,

вот есть, например, такой код


  if( a = 1 )
  {
     b = 2;
  }
  else if( a = 30 )
  {
     b = 12;
  }
  else if( a = 100 )
  {
     b = 17;
  }
  // и ещё штук 20 таких же конструкций


Чем это заменить можно?

Можно как-то так, например (код условный)


int arA[] = { 1, 30, 100... }
int arB[] = { 2, 12, 17....}

for( int i = 0; i < size_of_arA; i++ )
{
  if( a == arA[ i ] )
  {
     b = arB[i];
     break;
  }
}


Это здорово всё если такой код относительная редкость. Иначе становится утомительным писать эти циклы и заполнять эти массивы.

Может быть есть какое-то универсальное решение? Только надо понимать, что вместо b = 12 может быть, например, b |= 12, или вместо int может быть TCHAR*
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.