Re: multiple choice IF condition
- To: mathgroup at smc.vnet.net
- Subject: [mg56450] Re: [mg56427] multiple choice IF condition
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Tue, 26 Apr 2005 01:32:50 -0400 (EDT)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
a=0;
Table[
If[i==3||i==5||i==9||i==18,a=a+i;],
{i,20}];
a
35
Alternatives:
a=0;
Table[
If[MemberQ[{3,5,9,18},i],a=a+i;],
{i,20}];
a
35
a=0;
Table[
If[Or@@Thread[i=={3,5,9,18}],a=a+i;],
{i,20}];
a
35
Or define your own function
ClearAll[myIf];
SetAttributes[myIf, HoldAll];
myIf[i_Symbol==Or[val__],t_,f_:Null]:=
If[Or@@Thread[i=={val}],t,f];
a=0;
Table[
myIf[i==Or[3,5,9,18],a=a+i;],
{i,20}];
a
35
Bob Hanlon
>
> From: marloo3 at mail15.com
To: mathgroup at smc.vnet.net
> Date: 2005/04/25 Mon AM 01:30:41 EDT
> Subject: [mg56450] [mg56427] multiple choice IF condition
>
> could we have a more practical way than this way of choosing some
numbers of the
> choice:
>
> a = 0;
> Table[If[i == 3 || i == 5 || i == 9 || i==18, a = a + i], {i, 20}]
>
> ie: i wish if it is possible like this:
> If[i==3 ||5 ||9||18, ...]
>
> Thanks very much
> mark
>
>