why are undergrads in compsci so obsessed with switch statements

@wallhackio not an undergrad but purrsonally i just despise how if-elseif chains look

@aescling but switch statements add a bunch of indentation so for me it's picking your poison

@wallhackio @aescling Do they?

switch (some_enum) {
case VALUE1:
do_something();
break;
case VALUE2:
do_something_else();
break;
}

vs.

if (some-enum == VALUE1) {
do_something();
} else if (some_enum == VALUE2) {
do_something_else();
}

That's the same amount of indentation...

@vaporeon_ @aescling I would always do it like

switch(gorp) {
case 'norp':
console.log('norp');
break;
case 'sorp':
console.log('sorp');
break;
default:
console.log(' what the gorp???');
break;
}

@wallhackio @vaporeon_ @aescling you should instead do

switch (gorp) {
case 'norp': {
console.log('norp')
break
}
// etc
}

@Lady @vaporeon_ @aescling I only do that if I start declaring variables in the switchies

@wallhackio @vaporeon_ @aescling reasonable but then if you add a variable declaration you have to reindent the whole block so

Follow

@wallhackio @vaporeon_ @aescling really one should just not use switch statements unless you are writing Swift which actually does them well

@wallhackio @vaporeon_ hey @aescling how do you feel about

switch (false) {
case !cond1:
// …
case !cond2:
// …
}

you hater of elif

@Lady @wallhackio @vaporeon_ ftr i didn't actually end up thinking switch (true) was better and wouldn’t do it again because it’s just about equally as terrible as that

@aescling @wallhackio @vaporeon_ coffeescript allows a bare switch without a condition statement which effectively compiles to switch (true)

@aescling @wallhackio @vaporeon_ coffeescript is good and fun but you have to install node to use it so it’s impossible to say whether it is worthwhile or not

Sign in to participate in the conversation
📟🐱 GlitchCat

A small, community‐oriented Mastodon‐compatible Fediverse (GlitchSoc) instance managed as a joint venture between the cat and KIBI families.