       Re: If without else

• To: mathgroup at smc.vnet.net
• Subject: [mg113030] Re: If without else
• From: Hugo Touchette <hugo.touchette at googlemail.com>
• Date: Tue, 12 Oct 2010 04:22:08 -0400 (EDT)
• References: <i8ukmb\$odm\$1@smc.vnet.net>

```On Oct 11, 10:16 am, Sebastian Schmitt <sschm... at physi.uni-
heidelberg.de> wrote:
> Dear all!
>
> (I recycle my disclaimer.)
>
> I'm new to Mathematica with a background mostly in C++. Many times I
> have the impression that my style is not natural-Mathematica
> (Mathematicaesque so to say).
>
> I have a question to the usage of the If condition.
>
> In := x = 2; b = 3;
>
> In := If[b > 2, x = 10,]; x
>
> Out = 10
>
> In := If[b > 3, x = 20,]; x
>
> Out = 10
>
> Is it good-practice to leave the "else" empty? Is
>
> x := 10 /; b > 2
>
> what I'm looking for?
>
>
> Sebastian

Dear Sebastian,

The /; notation is for patterns defined with a condition, not
conditional execution (in the sense of programming). For example, with

x:=10/;b>2

you define a delayed replacement (x to be 10) on the condition that
b>2. Here x:=10 is the pattern.

If you want to execute something upon some conditions, then you really
need to use 'If'. For example,

Test[x_] := Module[{},
Print["Positive"] /; x > 0;
Print["Even"] /; EvenQ[x];
]

doesn't do probably what you expect. What you want is

Test[x_] := Module[{},
If[x > 0, Print["Positive"]];
If[EvenQ[x], Print["Even"]];
]

I hope this helps.

oguh

```

• Prev by Date: Re: Solving a non-linear system to find coefficients in Runge-Kutta method
• Next by Date: How to solve this differential equation? (harmonic oscillator)
• Previous by thread: If without else
• Next by thread: Re: If without else