El arte de programar en R Un leguaje para la estadística - page 70

CAPÍTULO 4. ESTRUCTURAS DE CONTROL Y MANEJO DE DATOS 67
4.2.2. Repeticiones mientras se cumple una condición
La construcción que habilita esta operación es la instrucción
while
, que se
puede ejemplificar como sigue:
# Para la misma tarea de los ejemplos anteriores
i
<-
1
while
(i
<=
6
) {
print
(letras[i])
i
<-
i
+
1
}
La salida de este ejemplo es la misma que la de los ejemplos anteriores. En
este caso, si no se tiene cuidado en el manejo del índice
i
, involucrado en la
condición, se puede dar lugar a un ciclo sin salida.
4.2.3. Repeticiones
infinitas
La construcción que habilita esta operación es la instrucción
repeat
. Aun-
que en realidad no se quiere significar que las repeticiones sean infinitas o in-
terminables, como la instrucción no tiene condición de salida o interrupción,
el resultado que la instrucción produciría en sí misma sería una repetición in-
terminable; pero, el lenguaje provee facilidades para que desde el interior del
bloque de expresiones que se repiten, se obligue la interrupción del ciclo, por
ejemplo, mediante la instrucción
break
, que se detalla más adelante. Así, para
producir los mismos resultados que en los ejemplos anteriores, se puede hacer
así:
i
<-
1
repeat
{
print
(letras[i])
i
<-
i
+
1
if
(i
>
6
)
break
}
En este caso, mediante un
if
que prueba una condición de salida, se
dispara
una instrucción
break
que interrumpe el ciclo.
4.2.4. Interrupciones del flujo normal de los ciclos
El flujo normal de los ciclos se puede interrumpir básicamente por medio
de tres instrucciones diferentes:
break
,
next
y
return
.
En el último ejemplo de la sección anterior, 4.2.3, se ha utilizado la instruc-
ción
break
para obligar la salida de un ciclo infinito que se realiza mediante la
instrucción
repeat
. No es éste, sin embargo, el único ciclo que puede interrum-
pir la instrucción
break
, ya que ella se puede utilizar en el interior de cualquier
1...,60,61,62,63,64,65,66,67,68,69 71,72,73,74,75,76,77,78,79,80,...198
Powered by FlippingBook