Escenario
Imagina este escenario:
La sentencia continue puede resolver este problema.
Sintaxis
Por convención, aprendemos primero la sintaxis de la declaración de continuar.
123456789loop(loop_condition){ código_bloque_antes_de_continuar;if(continue_condition){continuar;} código_bloque_después_continuar;}
csharp
Los segmentos de código en continuar son similares a romper, consulte la sección anterior si lo necesita.
Diagrama de flujo
Por favor, eche un vistazo al diagrama de flujo continuo. Muestra el control del flujo de forma intuitiva.
La línea roja representa el flujo de bucle, y la línea azul representa el flujo de salto continuo. O puedes simplemente centrarte en la dirección de la flecha en la plantilla de código.
Similar a la ruptura, podemos ver que la continuación también se basa en el bucle estándar. La única diferencia es que cuando se activa la condición continue_condition, se salta la lógica del bucle de reposo en la iteración actual.
Práctica
Ya que hemos aprendido el mecanismo de continuar, es hora de resolver el problema de la lotería. La idea es generar números en el bucle hasta que tengamos suficientes números. Si un número es un duplicado, lo abandonamos y continuamos el bucle.
123456789101112131415Aleatorio aleatorio =nuevoAleatorio();Lista<int> lotería =nuevoLista<int;;();while(lotería.Conteo <6){int num = aleatorio.Siguiente(1,10);if(lotería.Contiene(num)){ Consola. WriteLine("{0} ya existe, generar de nuevo", num);continue;// si num se duplica, abandonar y generar de nuevo} lotería.Add(num); Console.WriteLine("generar número: {0}", num);}Console.WriteLine("el resultado de la lotería es: {0}",string.Join(", ", lotería));
csharp
Aquí está el resultado de una generación:
123456789generar número: 1generar número: 99 ya existe, generar un número de nuevo: 2generar número: 8generar número: 42 ya existe, generar un número de nuevo: 7el resultado de la lotería es: 1, 9, 2, 8, 4, 7
Noten que esta solución no es el algoritmo más efectivo, pero un buen ejemplo de continuar.