[R] "Goto" loop
Peter Dalgaard
p.dalgaard at biostat.ku.dk
Sat Nov 1 11:24:29 CET 2008
Patrick Burns wrote:
> Peter Dalgaard wrote:
>> megh wrote:
>>
>>> Is there anything like "goto" loop, which exists in most computer
>>> programs?
>>> e.g. I am looking for this kind of stuff :
>>>
>>> if(i < 6) goto "step-02"
>>>
>>> Any idea?
>>>
>>> Regards,
>>>
>>
>> It doesn't exist, but it can always be replaced by if() {} else {}
>> constructs. (You don't usually see goto in the class of "functional
>> programming languages" to which R belongs. See also
>> http://en.wikipedia.org/wiki/Edsger_W._Dijkstra .)
>>
>> R does have break, next, and return() which cover some common cases
>> where goto might be used with some reason.
>>
>>
>
> 'switch' might well be added to this list.
>
Hmm, no, I don't think so. The switch expression belongs with structured
programming paradigms like if, while, for. (Also, by the way, the fact
that it can be implemented as a function call in R is a nice
illustration of what lazy evaluation means).
The other ones, say "break", cover situations where goto might be used
like this
while ( cond ){
if(...) goto exit;
....
}
exit:
...
which can be implemented using plain if and while, but becomes rather
painful:
while (cond & !done){
if (....) {
done <- TRUE
} else [
.....
}
}
Similarly, "continue" jumps to a virtual label at the end of (but
inside) the loop and return() corresponds to a jump to the end of a
function.
--
O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list