иногда бывает необходимо скажем ловить передний и задний фронт а времени на проверку внутри прирывания нет, тогда замыкаю инты. Но если нет ограничений по времени то правильней сделать if-else. Если больше двух вариантов- тогда делать switch. А если действительно много вариантов ветвления но не switch не хватает времени то есть стандартный механизм перехода по адресу с инкриментом.