Re: Re: First question
- To: mathgroup at smc.vnet.net
- Subject: [mg52149] Re: [mg52107] Re: [mg52091] First question
- From: DrBob <drbob at bigfoot.com>
- Date: Fri, 12 Nov 2004 02:14:06 -0500 (EST)
- References: <200411110952.EAA28769@smc.vnet.net>
- Reply-to: drbob at bigfoot.com
- Sender: owner-wri-mathgroup at wolfram.com
>> The bug is the If statement which should read
>> If[i > 3,
>> Return[{"from inside"}],
>> Return[{"not from inside"}]
>> ]
No, that would stop Do on its first iteration; clearly not what the OP intended.
Bobby
On Thu, 11 Nov 2004 04:52:08 -0500 (EST), David Annetts <davidannetts at ihug.com.au> wrote:
>
>
> Hi Gilbert,
>
>> How to exit directly and immediately a module from inside a loop with
>> a certain value ?
>> Return seems not to work.
>>
>> Example:
>>
>> lmaa := Module[
>> {},
>> Do[
>> If[i > 3, Return[{"from inside"}]],
>> {i, 1, 5}
>> ];
>> Return[{"not from inside"}]
>> ]
>
> You have a bug in your code, as well as some possible misunderstanding, and
> certainly some dangerous programming.
>
> The bug is the If statement which should read
> If[i > 3,
> Return[{"from inside"}],
> Return[{"not from inside"}]
> ]
>
> Your final statement means that the function will always return "not from
> inside". There is a confusion since you may have another i which is global
> that you want to work from instead.
>
> The dangerous programming is that i is a local variable to the loop. It
> always takes values 1, 2, 3, 4, 5. Which in turn means that it returns the
> last value (there are no Break[]'s in your code) which is 5.
>
> You have some reading to do ....
>
> Regards,
>
> Dave.
>
>
>
>
>
>
--
DrBob at bigfoot.com
www.eclecticdreams.net
- References:
- Re: First question
- From: "David Annetts" <davidannetts@ihug.com.au>
- Re: First question