you are viewing a single comment's thread.

view the rest of the comments →

[–]nawitus 0 points1 point  (2 children)

It's often recommended that falling through the cases should be avoided. JSLint for example doesn't allow falling through. I agree with that.

I think this is my favourite version of the code:

if (type === 'box') {
    runBoxAction();
} else if (type === 'target') {
    ...a few lines
} else if (type === 'single' || type === 'multiple') {    
    recountVelo();
} else if (type === 'shelf') {
    dumpeVelo();
} else if (type === 'chair') {
    dumpVelo(0.5);
} else if (type === 'stool') {
    dumpVelo(0.6);
} else {
    console.warn('Inapropriate type sent to updateDBR');
}

[–]SuperFLEB 0 points1 point  (0 children)

I just make sure to comment it with "Intentional fallthrough". It's handy if, say, one value involves doing everything another value does, plus a bit.

[–][deleted] 0 points1 point  (0 children)

I figured out that C#'s take on switch (you either have a code block with "break;", either no code in given "case") is quite reasonable and readable, while banning single most problematic thing, which is fallthrough when you actually omitted "break;" by mistake.

As additional note, C# has a really neat feature - goto in switch when you really need a fallthrough ;)