Pregunta:
Que es la estructura for?
nathalia b
2008-03-20 11:40:59 UTC
Necesito una explicacion bien clara de que es For y para que sirve...asi como quien dice java para dummies
Gracias
Tres respuestas:
Javier Bazan
2008-03-20 12:00:38 UTC
La estructura for es simplemente un ciclo.



Un ciclo no es más que una condición que permite la repetición de un evento hasta que la condición sea cumplida.



Por ejemplo:



Dim contar,total



contar = 0

total = 10



for contar = contar+1 to total

response.write(contar)

next



Ahora te explico. Primero estoy declarando dos variables y asignándoles un valor. Después, estoy abriendo un ciclo for que me permite repetir la instrucción response.write hasta que la variable ¨contar¨ tenga el valor de la variable ¨total¨ ¿Cómo hago esto? simplemente con la instrucción contar = contar+1



Cada vez que el ciclo llega al final, o sea a ¨next¨, vuelve al principio, o sea ¨for¨ y suma 1 al valor de ¨contar¨, después la compara con el valor de ¨total¨ y si no son iguales ejecuta la instrucción ¨response.write¨. Si la variable ¨contar¨ es igual a ¨total¨, entonces detiene el ciclo.



El ejemplo está hecho en Visual Basic Script, pero el ciclo for funciona exactamente igual en cualquier lenguaje. For es el tipo de ciclo más básico de los que puedes encontrar en los lenguajes modernos de programación. Otros tipos de ciclos son While o Do, los cuales son mucho más potentes.
2008-03-20 11:47:42 UTC
for es un ciclo general.



El bucle for o ciclo for es una estructura de control en la que se puede indicar el número máximo de iteraciones.



En Visual Basic, la interpretacion seria, el contador i iniciado en 1 va a recorrer el ciclo hasta que llegue a 100, imprimira el 1, 2, 3, 4, hasta llegar al 100. Es como el ciclo Do, while.
2008-03-20 11:50:30 UTC
"For" es una funcion de el batch..

FOR es una herramienta muy completa, nos permite analizar segmentos de la salida de comandos, funciones y el contenido de archivos.



Tambien permite hacer bucles de la siguiente manera:



Código:



FOR /L %%var IN (inicio,incremento,fin) DO (acciones)





inicio, es el valor inicial, incremento es la cantidad a sumar, y fin es la cantidad a detenerse, por ejemplo:



Código:



FOR /L %%i IN (0,1,10) DO (echo %%i)



imprimira 0 1 2 3 4 5 6 7 8 9 10



sinembargo, la forma mas sencilla de usar FOR, es para numerar archivos, y hacer algo con ellos.. por ejemplo:



Código:



FOR %%x in (x*) DO echo %%x



mostrará todos los archivos que empiezan con x.



para SOLO mostrar directorios:

Código:



FOR /D %%x in (m*) DO echo %%x



el modificador "/D", mostrará solo los directorios, que empiesen con m.



El comando se puede hacer "recursivo", es decir, que se ejecute dentro de cada directorio, con el comando "/R", por ejemplo, en una estructura de directorios como la siguiente:



Código:



├───adios

│ └───algo

│ └───xx

└───hola





al ejecutar el comando:

Código:



FOR /R /D %%x in (a*) DO echo %%x

C:\adios

C:\adios\algo





sinembargo, al ejecutar el comando..

Código:



FOR /R %%x in (*x*) DO echo %%x

C:\ax.txt

C:\adios\sx.txt

C:\adios\wwx.txt

C:\adios\algo\kkx.txt

C:\adios\algo\xx\xx.txt

C:\hola\ax.txt

C:\hola\rx.txt





nos mostrara todos los archivos que coinciden con la sequencia especificada, incluso podriamos hacer un buscador en batch, con el uso de FINDSTR y FOR.



Tenemos otro modificador, /F que nos permite usar ciertas opciones para separar el resulado de las acciones.. comandos, cadenas, o archivos. Su sintaxis es la siguiente:



Código:



FOR /F ["opciones"] %var IN (conjunto) DO (acciones)





conjunto puede ser:

conjunto de archivos -> sin comillas

cadena de caracteres -> con comillas dobles (" ")

comando -> con comilla simple (' ')



las opciones son las siguientes:

eol -> todo lo que este despues de este caracter sera ignorado (para cada linea)

skip -> numero de lineas a saltarse al principio del archivo/comando.

delims -> esto sirve para separar las strings.. si no se coloca esta opcion, se usaran como separadores "espacio" y "tab"

tokens -> esto es para especificar cuales segementos, delimitados por "delims", seran pasados a las variables.. por ejemplo:

1,2,3

solo pasara los primeros 3 segmentos.

1,2*

pasara 2 segmentos, el primero y todo lo que este despues (el * regresa todo el resto de la linea)

1,2-6,8,9*

regresara 4 segmentos, el primero, desde el segundo hasta el sexto, el octavo y el resto de la linea, despues del noveno, el signo de menos (-) genera intervalos.



por ultimo, esta la opcion:

usebackq -> que cambia la forma de interpretar si es string o comando, de la siguiente manera:

'cadena'

`comando`



Nota: [`] es diferente al caracter de acento [´]



por ejemplo, el siguiente comando:



Código:



FOR /F "tokens=1,3-5,7-9,10* delims= " %%i IN ("George no es malvado, es bondadoso, siempre piensa en los demas.") DO echo %%i %%j %%k %%l tonto, %%m %%n %%o matar a %%p %%q





dara de resultado:

Código:



George es malvado, es tonto, siempre piensa en matar a los demas.


Este contenido se publicó originalmente en Y! Answers, un sitio web de preguntas y respuestas que se cerró en 2021.
Loading...