control de flujo c#

25
 http://www.elgu ille.info/NET/cursoCSh arpErik/Entrega12/Entr ega12.htm CONTROL !E "L#$O: ESTR#CT#R%S &TER%T&'%S  Pasamos ahora a un nuevo conjunto de instrucciones de mucha utilidad. En realidad, casi todos los lenguajes cuentan con instrucciones parecidas (si no iguales) o que funcionan de un modo muy similar a las que vamos a ver aquí. Las estructuras iterativas de control de flujo se ocupan de repetir una serie de líneas de código tantas veces como el programador indique o ien hasta que se de una cierta condición. ! estas estructuras tami"n se les llama ucles.   !quellos de vosotros que cono#c$is otros lenguaje s ver"is que todos estos ucles se parecen mucho a los que ya conoc"is. Los que os est"is iniciando ahora en la programación puede que tard"is un poco en hallar la utilidad de todo esto% &para qu" vamos a hacer que el programa repita varias veces el mismo código' ueno, de momento os dir" que en todo programa, al igual que los loques if y los loques sitch, los ucles son tami"n el pan nuestro de cada día, así que no tardar"is en acostumraros a ellos.  (#CLES "OR  Los ucles for van asignando valores a una variale desde un valor inicial hasta un valor final, y cuando la variale contiene un valor que est$ fuera del intervalo el ucle termina. *eamos la sinta+is para hacernos mejor a la idea%  for (var=inicial;condición;siguientevalor) {  Instrucciones }  " que esto es algo difícil de leer, incluso para aquellos que hayan programado en otros lenguajes, puesto que los ucles for de - no se parecen mucho, en cuanto a su sinta+is, al resto de los ucles for de los otros lenguajes, así que tratar" de e+plicarlo con detenimiento. -omo veis, tras la sentencia for se indican las especificaciones del ucle entre par"ntesis. ichas especificacione s est$n divididas en tres partes separadas por punto y coma% la parte de asignaci ón del valo r inic ial en primer lugar/ la par te que verifica la continuidad del ucle (mediante una condición) en segundo lugar/ y la parte en que se calcula el siguiente valor en tercer lugar. Pongamos un ejemplo% vamos a calcular el factorial de un n0mero dado, que se encuentra almacenado en la variale num. e podría hacer de dos formas%  for (  byte i=num ; i>1 ; i--) {  fact*=i; }

Upload: bolivar-orbe-robles

Post on 05-Oct-2015

260 views

Category:

Documents


2 download

DESCRIPTION

Como elabor un flujo de informacion en c#

TRANSCRIPT

http://www.elguille.info/NET/cursoCSharpErik/Entrega12/Entrega12.htmCONTROL DE FLUJO: ESTRUCTURAS ITERATIVASPasamos ahora a un nuevo conjunto de instrucciones de mucha utilidad. En realidad, casi todos los lenguajes cuentan con instrucciones parecidas (si no iguales) o que funcionan de un modo muy similar a las que vamos a ver aqu. Las estructuras iterativas de control de flujo se ocupan de repetir una serie de lneas de cdigo tantas veces como el programador indique o bien hasta que se de una cierta condicin. A estas estructuras tambin se les llama bucles.Aquellos de vosotros que conozcis otros lenguajes veris que todos estos bucles se parecen mucho a los que ya conocis. Los que os estis iniciando ahora en la programacin puede que tardis un poco en hallar la utilidad de todo esto: para qu vamos a hacer que el programa repita varias veces el mismo cdigo? Bueno, de momento os dir que en todo programa, al igual que los bloques if y los bloques switch, los bucles son tambin el pan nuestro de cada da, as que no tardaris en acostumbraros a ellos.BUCLES FORLos bucles for van asignando valores a una variable desde un valor inicial hasta un valor final, y cuando la variable contiene un valor que est fuera del intervalo el bucle termina. Veamos la sintaxis para hacernos mejor a la idea:for(var=inicial;condicin;siguientevalor){ Instrucciones}S que esto es algo difcil de leer, incluso para aquellos que hayan programado en otros lenguajes, puesto que los bucles for de C no se parecen mucho, en cuanto a su sintaxis, al resto de los bucles for de los otros lenguajes, as que tratar de explicarlo con detenimiento. Como veis, tras la sentencia for se indican las especificaciones del bucle entre parntesis. Dichas especificaciones estn divididas en tres partes separadas por punto y coma: la parte de asignacin del valor inicial en primer lugar; la parte que verifica la continuidad del bucle (mediante una condicin) en segundo lugar; y la parte en que se calcula el siguiente valor en tercer lugar. Pongamos un ejemplo: vamos a calcular el factorial de un nmero dado, que se encuentra almacenado en la variable num. Se podra hacer de dos formas:for(bytei=num;i>1;i--){ fact*=i;}O bien:for(bytei=1;i1;i--){ fact*=i;}2 paso:for(bytei=num;i>1;i--){ fact*=i;}3 paso:for(bytei=num;i>1;i--){fact*=i;}

4 paso:for(bytei=num;i>1;i--){ fact*=i;}5 paso:for(bytei=num;i>1;i--){ fact*=i;}6 paso:for(bytei=num;i>1;i--){fact*=i;}

En primer lugar se asigna a la variable i el valor de num (vamos a suponer que num vale 3), es decir, despus del primer paso, el valor de i es 3. Posteriormente se comprueba si dicha variable es mayor que 1, es decir, si 3>1. Como la condicin del segundo paso se cumple se ejecuta el cdigo del bucle en el tercer paso, fact*=i, con lo que fact (que vala 1) ahora vale 3 (1*3). En el cuarto paso se asigna el siguiente valor a i (i--), con lo que, ahora, i valdr 2. En el quinto se vuelve a comprobar si i es mayor que 1, y como esto se cumple, el sexto paso vuelve a ejecutar el cdigo del bucle (de nuevo, fact*=i), con lo que ahora fact vale 6 (3*2). El sptimo paso es idntico al cuarto, es decir, se asigna el siguiente valor a la variable i (de nuevo, i--), con lo que ahora i valdra 1. El octavo paso es idntico al quinto, comprobando por lo tanto si i es mayor que 1. Sin embargo esta vez, la condicin no se cumple (1 no es mayor que 1, sino igual), por lo que la ejecucin saldra del bucle y ejecutara la siguiente lnea del programa que est fuera de l. Date cuenta de que el bucle se seguir ejecutando siempre que la condicin ( i>1 ) se cumpla, y dejar de ejecutarse cuando la condicin no se cumpla. Por lo tanto, no habra sido vlido poner i==2 en lugar de i>1, ya que esta condicin se cumplira nicamente cuando num valiera 2, pero no en cualquier otro caso. Seras capaz de ver cmo funcionara el otro bucle? Venga, intntalo.BUCLES FOR ANIDADOSEfectivamente, se pueden colocar bucles for dentro de otros bucles for, con lo que obtendramos lo que se llaman los bucles for anidados. Son tambin muy tiles: por ejemplo, piensa que tienes almacenadas unas cuantas facturas en una base de datos, y quieres leerlas todas para presentarlas en pantalla. El problema est en que cada factura tiene una o varias lneas de detalle. Cmo podramos hacer para cargar cada factura con todas sus lneas de detalle? Pues usando bucles anidados. Colocaramos un bucle for para cargar las facturas, y otro bucle for dentro de l para que se cargaran las lneas de detalle de cada factura. As, el segundo bucle se ejecutar completo en cada iteracin del primer bucle. Veamos un ejemplo que nos aclare todo esto un poco ms:usingSystem;namespaceBuclesAnidados{classBuclesAnidadosApp {staticvoidMain() {for(inti=1; i