The advantage of an if/else is clarity, it's very obvious that I execute only one of the assignments then. Since the lines are practically next to each other, it's easy to see how both alternatives differ from each other.
The cost of an if/else is additional indentation of the "else" statements, and understanding that the code is executed when the condition at the "if" line does NOT hold. While that sounds easy enough, try it when you have 5 nested if/else statements, where each innermost alternative is 30-40 lines long. "I am at around line 340, now what was the condition for this code again? Let's look for that, 5 pages back".
The advantage of multiple exit points is that you do a case-by-case kind handling, "if foo holds, handle that case, and done." next, "if foo2 holds, handle that case, and done." It's easier to understand if "foo" and "foo2" (and "foo3" ...) are not much related. If they are closely related, you have the same problem as with the "else" case where it becomes tricky to understand when exactly the code is executed.
The second advantage of multiple exit points is less indentation. With 5 nested if/else statements, you're looking at 20 to 40 spaces before the first character of a statement. At some point you have more white-space than actual code.
The disadvantage of multiple exit points is lack of coherence. It's a long list of cases, and there is no telling how many cases there are, or whether you have done them all (if you missed one case, the last case is actually being used for 2 unrelated cases, without anything warning you for that).
Obviously, there are other ways to solve the above too, 5 nested if/else statements, each with 30 lines of handling code shouldn't be in one function in the first place. A better solution here can be to make a separate function for each alternative, and have the 5 nested if/else constructs call a function or two at the appropriate point.
You think having 2 breaks in one switch statement is good- one with ...
Above I tried to explain the advantages and disadvantages of the alternatives, as I see them. however, for this case, none of them apply, since the statements handling the alternatives are 1 line exactly. Personally, I'd go for the coherence of the if/else construct, but try them both, and see what you like best.
It's weird how it has been working already though, and I don't know how I didn't think of something like that already.
We are very bad at reading code that we think we know. That's how you and I missed the assignment in the condition, and that's how you and Lactose missed the if statement that does nothing.
Did you know that while reading normal text, we actually skip 50% of the letters? We look at start and finish of a word, and the general shape, and our brain fills in the missing letters. The same thing happens here, except that code has a much higher information density, and unlike spelling errors, single letter mistakes are deadly.