[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: assignment inside boolean expression



Craig Markwardt wrote:

> Ben Tupper <tupper@seadas.bigelow.org> writes:
> > "Liam E.Gumley" wrote:
> >
> > >
> > > Recall that in IDL, integers with odd non-zero values are Boolean
> > > 'True'. Beware of floats and doubles though, where any non-zero value is
> > > Boolean 'True'.
> > >
> >
> > Dang!
> >
> > I just spent an hour figuring out an efficient way of determining if an
> > integer is odd!
> >
> > I have an IDL function ISODD() for sale... very cheap.   No reasonable
> > offer refused.
>
> Not to undercut you, but will (X AND 1) do the trick?
>

Thanks to Ken and Craig. I think for my purposes the following should suffice (I

guess as long as I make sure that I'm working with an integer/long/byte type.)

X = Indgen(6) - 2

For i = 0, N_elements(X)-1 Do $
   If X[i] then Print, X[i], ': Odd' Else print, X[i], ': Even'

-2: Even
-1: Odd
0: Even
1: Odd
2: Even
3: Odd

Thanks again,

Ben

--
Ben Tupper

Bigelow Laboratory for Ocean Science
tupper@seadas.bigelow.org

pemaquidriver@tidewater.net