Re: While Loop
- To: mathgroup at smc.vnet.net
- Subject: [mg123632] Re: While Loop
- From: João Paulo Pereira <joaopereira9 at gmail.com>
- Date: Tue, 13 Dec 2011 05:44:43 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jbvjus$j47$1@smc.vnet.net>
Thanks everybody
It is clear now how this works
Joao
On 12/12/11, DrMajorBob <btreat1 at austin.rr.com> wrote:
> Nice.
>
> Bobby
>
> On Sun, 11 Dec 2011 02:49:44 -0600, Oleksandr Rasputinov
> <oleksandr_rasputinov at hmamail.com> wrote:
>
>> On Sat, 10 Dec 2011 12:39:56 -0000, Joao <joaopereira9 at gmail.com> wrote:
>>
>>> Hi, everybody
>>>
>>> Could someone help me regarding the While Loop.
>>>
>>> While[test,body]
>>>
>>> In the help "While" it is stated that the test may be evaluated at the
>>> end of the loop, instead of at the beginning. However in the tutorial on
>>> Loops and Control structures it is stated that the While always
>>> evaluates the test at the beginning.
>>>
>>> I would like to know if it is really possible to evaluate the test
>>> inside de While at the end of the loop.
>>
>> For the syntactical form you give above, test (not "the test", but "the
>> expression called test") is always evaluated before body (ditto). This is
>> standard in Mathematica in that function arguments normally evaluate from
>> right to left. However, what the documentation is saying is that there
>> are
>> variant forms you can use to have "the test" evaluated after "the body".
>> You can, of course, use
>>
>> While[True, body; If[test, Break[]]]
>>
>> but I think the clearest way is the one which omits body entirely ("the
>> expression called body" is implicitly Null). For example,
>>
>> i = 5; While[Print[--i]; i > 0]
>>
>> which prints
>>
>> 4
>> 3
>> 2
>> 1
>> 0
>>
>> and thus demonstrates that it meets your requirements.
>>
>
>
> --
> DrMajorBob at yahoo.com
>
>