This case statement isn't all the complicated - kind of the intended use of case, I don't see where there is wading, you simply ignore that cases that aren't the one you want.  To my mind it's easier to pick the branching path in the case statement - explicitly written, than to figure out the the loop and constructed statement, different strokes. Anyways, I don't have a problem w/the refactoring so I won't make you reverse it.