471,593 Members | 1,833 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,593 software developers and data experts.

Noobie question about Switch

Hi all, this is a newbie question :-)

I was wondering if there was a way to use the switch statement in a manner
that each case statement includes more that a simple value. i.e.:
switch ( myFloat )
{

case >0: // ??? how do i write this ???

// execute if myfloat >0

break;

case 0:

// execute if myfloat ==0

break;

default:

// you got the idea
}

TIA
Aristotelis
Jul 22 '05 #1
6 1756
Hello,

"Aristotelis E. Charalampakis"
<ar***********************@REMOVEMEhotmail.com> wrote in message
news:bs***********@ulysses.noc.ntua.gr...
Hi all, this is a newbie question :-)

I was wondering if there was a way to use the switch statement in a manner
that each case statement includes more that a simple value. i.e.:
switch ( myFloat )
{

case >0: // ??? how do i write this ???

// execute if myfloat >0

break;

case 0:

// execute if myfloat ==0

break;

default:

// you got the idea
}

TIA
Aristotelis


You can use if/else if/else combos or some sort of control table of your
design:
float range[3*2] = { 0.1, 0.9, 1, // if greater than 0.1 and below 0.9 then
integer i = 1
1.1, 2.1, 2}; // if 1.1 and 2.1 then 2, etc..

--
Elias
Jul 22 '05 #2
So it is not possible to write something like
"case >0" ?

Can it be written in the form

switch ( TRUE )
case myFloat>0:
etc?

In VB I can write something like this:

select case myFloat
case 2 , 3
'Do something
case Is > 4
'do something else
case else
'default
end select

Or

select case True
case myFloat>4
'Do something
case myFloat<0
'do something else
case else
'default
end select

Is there a way to implement the above with the switch statement?

TIA,
Aristotelis

"lallous" <la*****@lgwm.org> wrote in message
news:bs************@ID-161723.news.uni-berlin.de...
Hello,

"Aristotelis E. Charalampakis"
<ar***********************@REMOVEMEhotmail.com> wrote in message
news:bs***********@ulysses.noc.ntua.gr...
Hi all, this is a newbie question :-)

I was wondering if there was a way to use the switch statement in a manner that each case statement includes more that a simple value. i.e.:
switch ( myFloat )
{

case >0: // ??? how do i write this ???

// execute if myfloat >0

break;

case 0:

// execute if myfloat ==0

break;

default:

// you got the idea
}

TIA
Aristotelis
You can use if/else if/else combos or some sort of control table of your
design:
float range[3*2] = { 0.1, 0.9, 1, // if greater than 0.1 and below 0.9

then integer i = 1
1.1, 2.1, 2}; // if 1.1 and 2.1 then 2, etc..
--
Elias

Jul 22 '05 #3

"Aristotelis E. Charalampakis" <ar***********************@REMOVEMEhotmail.com> wrote in message
In VB I can write something like this:
We're not in VB anymore.
select case myFloat
case 2 , 3

In C/C++:
case 2: case 3:

There's no way to do the relationals directly. You could do something like:

switch(i) {
case 2:
case 3:
...

default:
if(i > 10) { ...

You can't do switch with floats at all. The arg has to be an integer or
enum type.
Jul 22 '05 #4
Aristotelis E. Charalampakis wrote:
Hi all, this is a newbie question :-)

I was wondering if there was a way to use the switch statement in a
manner that each case statement includes more that a simple value.
i.e.:
switch ( myFloat )
You cannot use switch/case on floating point values, only integral
values.
{

case >0: // ??? how do i write this ???

// execute if myfloat >0

break;

case 0:

// execute if myfloat ==0

break;

default:

// you got the idea
}


There is no way to do that. Just use if:

if (myFloat == 0)

// execut if myFloat == 0

else if (myFloat > 0)

// esecute if myFloat > 0

else

// you got the idea

Btw: testing floating point values for equality is most often a bad idea
Jul 22 '05 #5
Thank you all. I will stick to the if / else combos.
Btw: testing floating point values for equality is most often a bad idea


Yes, it is a bad idea. I am not noobie in general, just in C++.

Yet, I have persuaded myself to write some dlls (mostly math stuff) in C++,
so that I get to know it. Some other dlls are in Visual Fortran 6.5, the gui
in VB.

Aristotelis.
Jul 22 '05 #6
"Aristotelis E. Charalampakis" <ar***********************@REMOVEMEhotmail.com> wrote in message news:<bs***********@ulysses.noc.ntua.gr>...
Hi all, this is a newbie question :-)

I was wondering if there was a way to use the switch statement in a manner
that each case statement includes more that a simple value. i.e.:


A way of doing it (just as tiring as if-else though) is:

switch (myFloat > 0) {
case true: blah blah; break; //myfloat > 0
case false: switch (myFloat == 0) {
case true: blah blah; break; //myfloat == 0
case false: blah blah; break; //myfloat < 0
}
break;
}
Jul 22 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

10 posts views Thread by Myster Ious | last post: by
15 posts views Thread by YitzHandel | last post: by
18 posts views Thread by Minti | last post: by
10 posts views Thread by Chih-Hsu Yen | last post: by
3 posts views Thread by QQ | last post: by
10 posts views Thread by Evie | last post: by
2 posts views Thread by jalqadir | last post: by
13 posts views Thread by Satya | last post: by
1 post views Thread by Josh Ibrahim | last post: by
reply views Thread by leo001 | last post: by
reply views Thread by Anwar ali | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.