El ciclo while
Otro ciclo dentro del C# es el while. La forma general del while es:
while (condición) sentencia;
donde sentencia puede ser una simple sentencia o un bloque de sentencias y condición define la condición que controla el ciclo y puede ser cualquier expresión booleana válida. Las sentencias son ejecutadas mientras la condición es verdadera. Cuando la condición llega a ser falsa, el control del programa pasa a la línea inmediata que sigue el ciclo (si son más de una sentencias se debe usar un bloque con llaves para que el while sepa que tiene que hacer todas las instrucciones en cada vuelta del ciclo).
// Calcular el orden de magnitud de un número
using System;
class WhileDemo {
static void Main() {
int num;
int mag;
num = 435679;
mag = 0;
Console.WriteLine("Número: " + num);
while(num > 0) {
mag++;
num = num / 10;
};
Console.WriteLine("Magnitud: " + mag);
}
}
La salida del sistema anterior es:
Número : 435679
Magnitud : 6
El ciclo trabaja de la siguiente manera: El valor de num es examinado. Si num es mayor que 0, la variable mag es incrementada y num es divido entre 10. Mientras el valor num sea mayor que 0 el ciclo se repite. Cuando num es igual a cero el ciclo se detiene y mag contiene el orden (cantidad de dígitos ) del valor original.
El ciclo do-while
El tercer ciclo del C# es el ciclo do-while. A diferencia del ciclo for y el ciclo while, en los cuales la condición es examinada y evaluada al inicio del ciclo, el ciclo do-while chequea la condición al final del ciclo. Esto significa que el ciclo do-while siempre se ejecutará al menos una vez. La forma general del ciclo do-while es la siguiente:
do {
sentencias;
} while(condición)
Las llaves no son necesarias si solo hay una sentencia, pero siempre es bueno tenerlas para que la estructura sea más legible.
Por ejemplo el siguiente programa muestra como se imprimen los números en orden inverso mediante un ciclo do-while
// Mostrar los dígitos de un entero en orden inverso
using System;
class DoWhileDemo {
static void Main() {
int num;
int nextdigit;
num = 198;
Console.WriteLine("Número: " + num);
Console.Write("Número en orden inverso: ");
do {
nextdigit = num % 10;
Console.Write(nextdigit);
num = num / 10;
} while(num > 0);
Console.WriteLine();
}
}
La salida del programa será:
Number: 198
Number in reverse order: 891
El ciclo foreach
El ciclo foreach recorre todos los elementos de una colección. Una colección es un grupo de objetos. C# define varios tipos de colecciones, una de las cuales son los Arreglos o Matrices. Examinaremos posteriormente el ciclo foreach cuando describamos los arreglos.
Usando la instrucción break para salir de un ciclo
Es posible forzar una salida inmediata del ciclo, sin pasar por el resto de código en el cuerpo del ciclo y la prueba condición del ciclo,usando la instrucción break. Cuando el ciclo encuentra la instrucción break, el ciclo es terminado, y el control del programa se pasa a la siguiente instrucción después del ciclo. Aquí un ejemplo de su uso.
// Usando break para salir de un ciclo
using System;
class BreakDemo {
static void Main() {
// Usar break para salir del ciclo
for(int i=-10; i <= 10; i++) {
if(i > 0) break; // terminar el ciclo cuando i sea positivo
Console.Write(i + " ");
}
Console.WriteLine("Hecho");
}
}
El break se puede usar en cualquier tipo de ciclo.
Usando continue
Es posible forzar una iteración temprana de un ciclo, sin pasar por la estructura del bucle de control normal. Esto se logra utilizando continue. La sentencia continue obliga a la siguiente iteración de la ciclo que tendrá lugar, saltándose cualquier código en el medio. Por lo tanto, continue es esencialmente el complemento de break. Por ejemplo, el siguiente programa utiliza continue ayudando a imprimir los números pares entre 0 y 100.
// Usar continue.
using System;
class ContDemo {
static void Main() {
// Imprimir número pares del 0 al 100.
for(int i = 0; i <= 100; i++) {
if((i%2) != 0) continue; // iterate
Console.WriteLine(i);
}
}
}
Nótese que en el programa anterior se evalúa si el residuo de la división del número almacenado en la variable i entre 2 es diferente de 0 se fuerza la siguiente iteración, si el valor es cero (el número es par) se imprime el valor del número.
La instrucción return
Esta instrucción muy usada en los programas de C# se utiliza para salir de un método. Este también puede ser usado para regresar un valor.
La sentencia goto
El goto es una sentencia de salto incondicional en C#. Cuando se encuentra el programa salta a una localización definida por el goto. La sentencia cayó en desgracia con muchos programadores años atrás, ya que fomentó la creación de código spaguetti. Sin embargo, el goto es todavía usado en ocasiones y de manera eficiente. No se debe juzgar la forma de programar de algunos pero si se puede reducir su uso es mejor. Un ejemplo de como se utilizaría sería el siguiente fragmento de código. Note que el goto requiere siempre de un label que funciona como un identificador válido de C#.
x = 1;
loop1:
x++;
if(x < 100) goto loop1;
Bueno, ha sido sufiente por el día de hoy. Mañana o más tarde estaré posteando más teoría para que la estudien y avancemos más rápido.
Saludos.
No hay comentarios:
Publicar un comentario