Re: simple question if/while loop
- To: mathgroup at smc.vnet.net
- Subject: [mg40131] Re: [mg40105] simple question if/while loop
- From: Dr Bob <drbob at bigfoot.com>
- Date: Fri, 21 Mar 2003 02:39:24 -0500 (EST)
- References: <200303200835.DAA06871@smc.vnet.net>
- Reply-to: drbob at bigfoot.com
- Sender: owner-wri-mathgroup at wolfram.com
The function returns While[...]*tb, and the value of While[...] is Null, so multiplying that by a matrix, you get the output you asked for. Each time a is encountered, a new random number is generated, so the a in "a > .5" isn't the same as the a in "tb[[n]] = a". Maybe that's what you intended, but I wonder. Continue serves no purpose here, and I recommend against capitalizing names you make up, to make it easier to distinguish your variables and functions from the built-ins. I don't know what you really want the function to do, but here's a possibility: testFun[] := Module[{a, tb = Table[0, {4}], n = 1}, While[n < 5, a = Random[]; If[a > .5, tb[[n]] = a; n++] ]; tb] However, this does exactly the same thing: testFun[] := Table[Random[Real, {1/2, 1}], {4}] Bobby On Thu, 20 Mar 2003 03:35:00 -0500 (EST), s kp <kpsj2002 at yahoo.com> wrote: > I am trying to do the following for a test purpose so I am a learning > mathematica > > TestFun[] := Module[{a, tb, n}, > tb = Table[0.0, {4}]; > n := 1; > a := Random[]; > While[n < 5, > If[ a > .5, > (tb[[n]] = a; > n++;), Continue[] > ] > ] > tb > ] > > The output that I get is > > {0.871577 Null, 0.512558 Null, 0.00441806 Null, 0.520545 Null} > > Why am I doing wrong here and what is the correct way to do the above > thing using If and While loop? > > thanks > > -- majort at cox-internet.com Bobby R. Treat
- References:
- simple question if/while loop
- From: s kp <kpsj2002@yahoo.com>
- simple question if/while loop