Cooperar con la declaración de salto
Para algunas situaciones más complejas en escenarios de la vida real, cuando se ejecutan en un bucle, alguna lógica puede disparar para cambiar el flujo de control. Necesitamos cooperar con las declaraciones de salto para lograr eso.
Por ejemplo, use continue para saltarse las frases de descanso y continuar a la siguiente iteración, o use break para salir del bucle, o salga del bucle por goto, return o throw statements.
Discutiré las declaraciones de salto en otra guía: Un recorrido exhaustivo de las declaraciones de salto C# Parte 1 – descanso, continúa.
Bucle infinito
Como todas las secciones de un bucle pueden ser opcionales, cuando la condición está vacía o es verdadera, causará un bucle infinito. Ejecutará la lógica del bucle para siempre hasta que desconecte el ordenador:
1234567891011// infinito para loopfor(;;){ Console.WriteLine("Estoy atrapado en el bucle. ¿Hay alguien aquí?");}// infinito mientras loopwhile(true){ Console.WriteLine("Estoy atrapado en el bucle otra vez. ¡Por favor ayúdame!");}
csharp
En la mayoría de los casos debe evitarse un bucle infinito. Pero no se preocupe, una declaración de salto, como se acaba de mencionar, es un asistente perfecto para un bucle infinito.
Lazo anidado
He mencionado que code_block es capaz de contener otro bloque de bucle. Esto se llama un bucle anidado.
Entonces, ¿cómo implementar un bucle anidado?
Hablando claro, podemos reemplazar la totalidad, o alguna parte, de code_block con otro bucle.
Practiquemos con un simple escenario para un bucle anidado:
1234567891011121314151617int[,] estantería =newint[2,3]{{11,7,10},{9,15,12},};int suma =0;// iteración para la primera dimensiónpara(int i =0; i < estantería. GetLength(0);++i){// iteración para la segunda dimensiónpara(int j =0; j < estantería.GetLength(1);++j){ suma += estantería[i, j];}}}Consola.WriteLine("hay {0} libros en esta estantería", suma);// salida: hay 64 libros en esta estantería
csharp
Crear un bucle anidado para indexar una matriz bidimensional. El bucle exterior es la iteración para la primera dimensión y el bucle interior es para la segunda dimensión.