I'm creating a console app and using a switch
statement to create a simple menu system. User input is in the form of a single character that displays on-screen as a capital letter. However, I do want the program to accept both lower- and upper-case characters.
I understand that switch
statements are used to compare against constants, but is it possible to do something like the following?
switch(menuChoice) { case ('q' || 'Q'): //Some code break; case ('s' || 'S'): //More code break; default: break; }
If this isn't possible, is there a workaround? I really don't want to repeat code.
You can't use “||” in case names. But you can use multiple case names without using a break between them. The program will then jump to the respective case and then it will look for code to execute until it finds a “break”. As a result these cases will share the same code.
Yes, switch "[uses] the strict comparison, === ".
Yes, this is valid, because in this case, the , is a comma operator.
The logical OR operator (||) will not work in a switch case as one might think, only the first argument will be considered at execution time.
This way:
switch(menuChoice) { case 'q': case 'Q': //Some code break; case 's': case 'S': //More code break; default: }
More on that topic: http://en.wikipedia.org/wiki/Switch_statement#C.2C_C.2B.2B.2C_Java.2C_PHP.2C_ActionScript.2C_JavaScript
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With