? Return[ ] in a Do loop ?
- To: mathgroup at smc.vnet.net
- Subject: [mg18469] ? Return[ ] in a Do loop ?
- From: "DongGook Park" <park at isrc.qut.edu.au>
- Date: Wed, 7 Jul 1999 23:08:36 -0400
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
I have found a strange behaviour of Return[ ] command when it is located in
a Do[ ] loop. That is, Return[ ] in a Do[ ] loop does not exits the
"function" but just the "Do loop". Fortunately(?), I have found that
eturn[ ] behaved desirably in While and For loops. I am quite confused and
wondering if these different behaviours of Return[] is as designed or just a
bug. Can anyone explain this behaviour?
Please check the following Mathematica scripts.
-------- Return in Do loop
In[1]:=
firstPosition[cand_List, target_] :=
Module[{i},
Do[ Print[i]; If[cand[[i]] == target, Return[i]],
{i, 1, Length[cand]}
];
-1
]
In[2]:=
firstPosition[{1,1,2,3,4},2]
1
2
3
Out[2]=
-1
-------- Return in While loop
In[3]:=
firstPosition[cand_List, target_] :=
Module[{i=1},
While[i <= Length[cand],
If[cand[[i]] == target, Return[i]];
i++
];
-1
]
In[4]:=
firstPosition[{1,1,2,3,4},2]
Out[4]=
3
-------- Return in For loop
In[5]:=
firstPosition[cand_List, target_] :=
Module[{i},
For[i = 1,
i <= Length[cand],
i++,
If[cand[[i]] == target, Return[i]]
];
-1
]
In[6]:=
firstPosition[{1,1,2,3,4},2]
Out[6]=
3
----------
Thanks,
DongGook Park