Re: Java: Switch Or If Else

  • From: "qubit" <lauraeaves@xxxxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Wed, 23 Feb 2011 06:27:19 -0600

Actually yes -- instead of the old fashioned integer cases on the C switch 
you can have a hash lookup on x that maps to a label to jump to.  Like in 
pseudo-C++ you would say

Map<String,Label> jumpTable;
...
l = jumpTable[x];
if l is null, goto defaultLabel;
else goto l;

Or, if Map<String,Label> is defined so new entries are initialized with 
value = defaultLabel, then you wouldn't need the if statement at all.
Just say

goto jumpTable[x];

Then the lookup on x will either find a match and would therefore have a 
label defined, or if x isn't in the table, the lookup operation would create 
a "null" entry with defaultLabel as its value.

Hope this makes sense.  I have seen C++ programs that do a truely volumous 
amount of work with just 1 or 2 lines of code using libraries that do most 
the work in a (hopefully) efficient manner.

Happy hacking.
--le

----- Original Message ----- 
From: "Homme, James" <james.homme@xxxxxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>
Sent: Wednesday, February 23, 2011 5:46 AM
Subject: RE: Java: Switch Or If Else


Hi,
Python has code that looks something like this.

If x in MyList:
  do some stuff here.

Is that the same thing?

Thanks.

Jim

Jim Homme,
Usability Services,
Phone: 412-544-1810. Skype: jim.homme
Internal recipients,  Read my accessibility blog. Discuss accessibility 
here. Accessibility Wiki: Breaking news and accessibility advice


-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx 
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of qubit
Sent: Tuesday, February 22, 2011 10:02 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: Re: Java: Switch Or If Else

another thing about switch statements for simple conditions like int or
character literal values,  is that the compiler can do some tricky things to
speed up the code -- for example, if you compare an int to values
1,2,3,...,100, and they all have code to execute, the compiler can do
something like create a jump array and transform the switch to code like the
following (pseudo code -- I don't know what java low level code looks like):

jumpArray[100] = { label1, label2, label3, ... label100 };
# the switch statement "switch (val) becomes:
if x is in range, then goto jumpArray[x-1]
else goto defaultLabel

I remember seeing this kind of thing in the code I used to support.
Of course that was a c/c++ compiler, but with java there might be similar
optimizations.
--le

----- Original Message ----- 
From: "Dave" <davidct1209@xxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>
Sent: Tuesday, February 22, 2011 7:43 PM
Subject: Re: Java: Switch Or If Else


That's assuming you don't have complex conditions you're checking for;
sometimes, if/else if is the only way to go.  When code becomes
long/slightly unreadable, refactoring usually is a good idea.

On 2/22/11, Homme, James <james.homme@xxxxxxxxxxxx> wrote:
> Hi,
> Thanks, guys. When I saw Ken's example, I liked the switch better.
>
> Jim
>
> Jim Homme,
> Usability Services,
> Phone: 412-544-1810. Skype: jim.homme
> Internal recipients,  Read my accessibility
> blog<http://mysites.highmark.com/personal/lidikki/Blog/default.aspx>.
> Discuss accessibility
> here<http://collaborate.highmark.com/COP/technical/accessibility/default.aspx>.
> Accessibility Wiki: Breaking news and accessibility
> advice<http://collaborate.highmark.com/COP/technical/accessibility/Accessibility%20Wiki/Forms/AllPages.aspx>
>
> From: programmingblind-bounce@xxxxxxxxxxxxx
> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Sina Bahram
> Sent: Tuesday, February 22, 2011 1:02 PM
> To: programmingblind@xxxxxxxxxxxxx
> Subject: RE: Java: Switch Or If Else
>
> I can't agree more
>
> Switch is so superior to chains of if statements.
>
> Take care,
> Sina
>
> From: programmingblind-bounce@xxxxxxxxxxxxx
> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Ken Perry
> Sent: Tuesday, February 22, 2011 12:59 PM
> To: programmingblind@xxxxxxxxxxxxx
> Subject: RE: Java: Switch Or If Else
>
>
>
> I find switch much easier to use and read in large if else messes.  For
> example in a multi level if else like this.
>
> If (){
> If (){
> If (){
> }else{
> }
> }else{
> }
> }else{
> If (){
> If (){
> }else{
> }
> }else{
> }
> }
>
>
> Could look like this
>
> Switch ()
> Case 1:
> If (){
> }else{
> }
> Case 2:
> If (){
> }Else{
> }
>
>
>
> From: programmingblind-bounce@xxxxxxxxxxxxx
> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Homme, James
> Sent: Tuesday, February 22, 2011 12:41 PM
> To: programmingblind@xxxxxxxxxxxxx
> Subject: Java: Switch Or If Else
>
> Hi,
> Would there be a time when you would choose to use switch, and another
> when
> you would choose to use if else? For example, if doing it one way or the
> other would make a program easier to read. When I was just thinking about
> this, it seemed to me that if you would choose if else, you wouldn't have
> to
> keep remembering to put in break statements. For ease of reading, it would
> seem that the code would take less time to listen to if you would choose
> if
> else.
>
> Thanks.
>
> Jim
> Jim Homme,
> Usability Services,
> Phone: 412-544-1810. Skype: jim.homme
> Internal recipients,  Read my accessibility
> blog<http://mysites.highmark.com/personal/lidikki/Blog/default.aspx>.
> Discuss accessibility
> here<http://collaborate.highmark.com/COP/technical/accessibility/default.aspx>.
> Accessibility Wiki: Breaking news and accessibility
> advice<http://collaborate.highmark.com/COP/technical/accessibility/Accessibility%20Wiki/Forms/AllPages.aspx>
>
>
> ________________________________
> This e-mail and any attachments to it are confidential and are intended
> solely for use of the individual or entity to whom they are addressed. If
> you have received this e-mail in error, please notify the sender
> immediately
> and then delete it. If you are not the intended recipient, you must not
> keep, use, disclose, copy or distribute this e-mail without the author's
> prior permission. The views expressed in this e-mail message do not
> necessarily represent the views of Highmark Inc., its subsidiaries, or
> affiliates.
>
__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at 
//www.freelists.org/list/programmingblind

Other related posts: