paulo1205
(usa Ubuntu)
Enviado em 22/04/2013 - 20:10h
Depende do quê você quer fazer e de como que fazê-lo.
Funcionalmente, procurar numa tabela é mais ou menos equivalente a ter uma série de
ifs. Contudo, cada lado tem lá as suas vantagens.
Em favor da fila de
ifs, a única possível vantagem que me vem à mente no momento é uma possível maior velocidade, por prescindir de variáveis de controle do loop e de cálculos de índices para chegar a cada possível caso de teste. Do ponto de vista da legibilidade e mantenibilidade de código, no entanto, a longa tripa de possíveis casos é desconfortável e pode se tornar propensa a erros. Além disso, existe uma amarração direta no código para todos os possíveis casos de uso, que o obriga a recompilar ao menos uma parte do programa sempre que seus dados de entrada forem alterados.
Se você optar por tabelas, tem a vantagem de poder ter um bloco de código razoavelmente pequeno para tratar praticamente todos os casos. Com alguma criatividade, novos casos de uso podem ser acrescentados sem a necessidade de alterar e de recompilar o parser. Se a chave de busca da tabela for ordenada, é possível reduzir o tempo de busca de O(n) para O(log(n)), e para tabelas maiores, o uso de uma função de hash pode aproximar essa busca de O(1).