AYUDA .NET

C# Continue (Cómo funciona para los desarrolladores)

Publicado en 29 de abril, 2024
Compartir:

Introducción

Las sentencias de flujo de control son cruciales en programación, ya que dictan la secuencia de ejecución de las instrucciones dentro de un programa. En C#, tres sentencias fundamentales para controlar bucles son 'continue', 'break', y 'goto'. Estas sentencias ofrecen a los programadores la posibilidad de alterar el flujo de ejecución dentro de los bucles, mejorando la eficiencia y legibilidad del código. En este artículo, nos adentramos en las complejidades de los métodos continue y break en C#, explorando su sintaxis, aplicaciones y mejores prácticas. Más adelante en el artículo, también aprenderemos sobre IronPDF de Iron Software para leer y escribir documentos PDF.

Comprender el enunciado 'continuar;

La sentencia continue se utiliza dentro de las estructuras de bucle para saltarse el bloque de código restante y pasar a la siguiente iteración del bucle. Esencialmente indica al control del programa que se salte el código restante de la iteración actual y pase a la siguiente iteración.

Sintaxis

continue;
continue;
continue
VB   C#

Ejemplo

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Demonstrate Continue Method in C#");
        Console.WriteLine("Print 1 to 10 skip 5");
        for (int i = 0; i < 10; i++)
        {
            if (i == 5)
            {
                continue; // Skips iteration when i equals 5
            }
            Console.WriteLine(i);
        }
    }
}
public class Program
{
    public static void Main()
    {
        Console.WriteLine("Demonstrate Continue Method in C#");
        Console.WriteLine("Print 1 to 10 skip 5");
        for (int i = 0; i < 10; i++)
        {
            if (i == 5)
            {
                continue; // Skips iteration when i equals 5
            }
            Console.WriteLine(i);
        }
    }
}
Public Class Program
	Public Shared Sub Main()
		Console.WriteLine("Demonstrate Continue Method in C#")
		Console.WriteLine("Print 1 to 10 skip 5")
		For i As Integer = 0 To 9
			If i = 5 Then
				Continue For ' Skips iteration when i equals 5
			End If
			Console.WriteLine(i)
		Next i
	End Sub
End Class
VB   C#

En este ejemplo, cuando i es igual a 5, se ejecuta la sentencia continue, saltándose el código restante dentro del bucle para esa iteración. Como resultado, el número 5 no se imprimirá, y el bucle pasa a la siguiente iteración.

Salida

C# Continuar (Cómo funciona para desarrolladores): Figura 1 - Salida de la consola mostrando que el caso 5 se salta debido a la sentencia continue

Explorar el método "break;

Al contrario que continue, la sentencia break se utiliza para salir prematuramente de un bucle. Cuando se encuentra, termina la ejecución del bucle, independientemente de la condición del bucle. Se utiliza comúnmente para salir de un bucle, como un bucle while, antes de tiempo si se cumple una determinada condición.

Ejemplo

int [] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
foreach (int number in numbers)
{
    if (number == 6)
    {
        break; // Exits loop when number equals 6
    }
    Console.WriteLine(number);
}
int [] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
foreach (int number in numbers)
{
    if (number == 6)
    {
        break; // Exits loop when number equals 6
    }
    Console.WriteLine(number);
}
Dim numbers() As Integer = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
For Each number As Integer In numbers
	If number = 6 Then
		Exit For ' Exits loop when number equals 6
	End If
	Console.WriteLine(number)
Next number
VB   C#

En este ejemplo, el bucle itera a través de la matriz de números. Cuando encuentra el número 6, se ejecuta la sentencia break, haciendo que el bucle termine prematuramente. Como resultado, sólo se imprimirán los números del 1 al 5.

Explorar la sentencia 'goto;'.

La sentencia goto en C# proporciona una forma de transferir el control a una etiqueta especificada dentro del mismo método, dentro de la misma sentencia switch, o dentro del mismo bucle. Aunque goto puede ser una herramienta poderosa para alterar el flujo de ejecución para saltar sentencias, a menudo se desaconseja en las prácticas modernas de programación debido a su potencial para hacer que el código sea menos legible y mantenible. Sin embargo, hay situaciones en las que el goto puede utilizarse de forma eficaz y segura.

Sintaxis

La sintaxis de la sentencia goto en C# es sencilla:

goto label;
goto label;
GoTo label
VB   C#

Cuando la etiqueta es un identificador seguido de dos puntos (:)que indica la posición de destino en el código.

Ejemplo

Considere un escenario en el que desee salir prematuramente de un bucle anidado cuando se cumpla una condición específica. Puede conseguirlo utilizando una sentencia goto:

for (int i = 0; i < 5; i++)
{
    for (int j = 0; j < 5; j++)
    {
        if (i * j > 10)
        {
            goto exitLoop;
        }
        Console.WriteLine($"i: {i}, j: {j}");
    }
}
exitLoop:
Console.WriteLine("Exited the nested loop prematurely.");
for (int i = 0; i < 5; i++)
{
    for (int j = 0; j < 5; j++)
    {
        if (i * j > 10)
        {
            goto exitLoop;
        }
        Console.WriteLine($"i: {i}, j: {j}");
    }
}
exitLoop:
Console.WriteLine("Exited the nested loop prematurely.");
For i As Integer = 0 To 4
	For j As Integer = 0 To 4
		If i * j > 10 Then
			GoTo exitLoop
		End If
		Console.WriteLine($"i: {i}, j: {j}")
	Next j
Next i
exitLoop:
Console.WriteLine("Exited the nested loop prematurely.")
VB   C#

En este ejemplo, la sentencia goto transfiere el control a la etiqueta exitLoop cuando se cumple la condición i * j > 10, rompiendo efectivamente el bucle anidado.

Presentación de IronPDF de Iron Software.

IronPDFdesarrollado por Iron Software, es una potente biblioteca PDF en C# que proporciona una solución todo en uno para trabajar con archivos PDF en proyectos .NET. Si necesita crear, editar, exportar, proteger, cargar o manipular documentos PDF, IronPDF es la solución. Estas son algunas de sus principales características y casos de uso:

  1. Conversión de HTML a PDF: Convierte contenidos HTML a formato PDF sin problemas. Puede generar PDF a partir de HTML, MVC, ASPX e incluso imágenes.

  2. Firme, edite y lea archivos PDF: Con más de 50 funciones, IronPDF le permite firmar, editar y extraer contenido de archivos PDF. Tanto si desea añadir firmas digitales como modificar PDF existentes, IronPDF se lo pone fácil.

  3. Soporte multiplataforma: IronPDF está diseñado para C#, F# y VB.NET, y funciona en varias versiones de .NET, incluidas .NET Core, .NET Standard y .NET Framework. También está disponible para Java, Node.js y Python.

    1. Compatibilidad y entornos:

      • Versiones .NET: Compatible con C#, VB.NET y F#.

      • Tipos de proyectos: Trabaja con web (Blazor y WebForms), escritorio (WPF Y MAUI)y aplicaciones de consola.

      • Entornos de aplicación: Compatible con Windows, Linux, Mac, Docker, Azure, AWS y más.

      • **Ventajas: Se integra perfectamente con Microsoft Visual Studio y JetBrains Rider.
    • SO y procesadores: Funciona en Windows, Mac y Linux (x64, x86, ARM).
    1. Normas y edición de PDF:

      • Admite varias versiones de PDF (1.2 - 1.7)PDF/UA y PDF/A.

      • Establezca las propiedades, la seguridad y la compresión de los archivos PDF.

      • Edite los metadatos, el historial de revisiones y la estructura del documento.
    • Aplique plantillas de página, encabezados, pies de página y ajustes de página.
    1. Optimización del rendimiento:

      • Multiproceso completo y compatibilidad asíncrona para una generación eficaz de PDF.
    • Prioriza la precisión, la facilidad de uso y la rapidez.

    Ahora que conocemos la librería IronPDF, escribamos una aplicación que utilice IronPDF y las sentencias continue, break y goto.

Generar un documento PDF utilizando el enunciado Continuar

En primer lugar, vamos a crear una aplicación de consola de Visual Studio

C# Continuar (Cómo funciona para los desarrolladores): Figura 2 - Creación de una aplicación de consola de Visual Studio

Indique el nombre y la ubicación del proyecto.

C# Continuar (Cómo funciona para los desarrolladores): Figura 3 - Introduzca el nombre del proyecto

Paso siguiente, seleccione la versión .NET necesaria y haga clic en Crear.

Ahora instale IronPDF usando el siguiente comando.

dotnet add package IronPdf --version 2024.4.2
dotnet add package IronPdf --version 2024.4.2
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronPdf --version 2024.4.2
VB   C#

Ahora vamos a generar un documento PDF utilizando las sentencias de control.

using System;
using System.Threading.Tasks;
using System.Diagnostics;
using IronPdf;
class Program
{
    public static async Task Main()
    {
        Console.WriteLine("Generate PDF document Using IronPDF");
        var htmlToPdf = new ChromePdfRenderer();
        var content = "<h1>Generate Numbers from 1 to 10, skip 5</h1>";
        for (int i = 0; i < 10; i++)
        {
            if (i == 5)
            {
                continue;
            }
            content += $"<p>{i}</p>";
        }
        content += "<h1>Generate Numbers from 1 to 10, stop at 7</h1>";
        for (int i = 0; i < 10; i++)
        {
            if (i == 7)
            {
                break;
            }
            content += $"<p>{i}</p>";
        }
        var pdf = htmlToPdf.RenderHtmlAsPdf(content);
        pdf.SaveAs("AwesomeIronPDF.pdf");
        Console.WriteLine("PDF generated successfully.");
    }
}
using System;
using System.Threading.Tasks;
using System.Diagnostics;
using IronPdf;
class Program
{
    public static async Task Main()
    {
        Console.WriteLine("Generate PDF document Using IronPDF");
        var htmlToPdf = new ChromePdfRenderer();
        var content = "<h1>Generate Numbers from 1 to 10, skip 5</h1>";
        for (int i = 0; i < 10; i++)
        {
            if (i == 5)
            {
                continue;
            }
            content += $"<p>{i}</p>";
        }
        content += "<h1>Generate Numbers from 1 to 10, stop at 7</h1>";
        for (int i = 0; i < 10; i++)
        {
            if (i == 7)
            {
                break;
            }
            content += $"<p>{i}</p>";
        }
        var pdf = htmlToPdf.RenderHtmlAsPdf(content);
        pdf.SaveAs("AwesomeIronPDF.pdf");
        Console.WriteLine("PDF generated successfully.");
    }
}
Imports System
Imports System.Threading.Tasks
Imports System.Diagnostics
Imports IronPdf
Friend Class Program
	Public Shared Async Function Main() As Task
		Console.WriteLine("Generate PDF document Using IronPDF")
		Dim htmlToPdf = New ChromePdfRenderer()
		Dim content = "<h1>Generate Numbers from 1 to 10, skip 5</h1>"
		For i As Integer = 0 To 9
			If i = 5 Then
				Continue For
			End If
			content &= $"<p>{i}</p>"
		Next i
		content &= "<h1>Generate Numbers from 1 to 10, stop at 7</h1>"
		For i As Integer = 0 To 9
			If i = 7 Then
				Exit For
			End If
			content &= $"<p>{i}</p>"
		Next i
		Dim pdf = htmlToPdf.RenderHtmlAsPdf(content)
		pdf.SaveAs("AwesomeIronPDF.pdf")
		Console.WriteLine("PDF generated successfully.")
	End Function
End Class
VB   C#

Código Explicación

  1. Inicialmente, estamos creando contenidos para utilizarlos en un documento PDF.

  2. Preparamos el contenido como documento HTML.

  3. Usamos la sentencia continue dentro del bucle for para imprimir del 1 al 10 y saltarnos el 5.

  4. Además, utilizamos la sentencia break para imprimir de 1 a 7 y romper.

  5. A continuación, utilizamos el objeto ChromePdfRenderer para guardar el documento HTML en un documento PDF.

Salida

C# Continuar (Cómo funciona para desarrolladores): Figura 4 - Ejemplo de salida que muestra cómo funcionan los métodos continue y break

Buenas prácticas y consideraciones

  1. Claridad y legibilidad: En la mayoría de los casos, el uso de declaraciones de flujo de control estructurado como break, continue, o bucles anidados puede hacer que su código sea más legible y comprensible. Las sentencias goto pueden hacer que el código sea más difícil de seguir, especialmente en bases de código grandes o cuando se utilizan en exceso.

  2. Evitar consecuencias no deseadas: El mal uso de goto puede conducir a código espagueti y dificultar el razonamiento sobre el comportamiento del programa. Es esencial utilizar goto con criterio y asegurarse de que su uso es claro y está bien documentado.

  3. Gestión de errores: Un caso de uso común para goto es en escenarios de manejo de errores, donde puede ser usado para saltar a una rutina de limpieza o de manejo de errores. Sin embargo, las bases de código C# modernas a menudo utilizan un manejo de excepciones estructurado. (try-catch-finally) para la gestión de errores, lo que proporciona un enfoque más estructurado y legible.

  4. Consideraciones de rendimiento: En términos de rendimiento, goto generalmente tiene un impacto mínimo. Sin embargo, la principal preocupación con goto es la mantenibilidad y legibilidad más que el rendimiento.

Licencia (prueba disponible)

IronPDF.

Hay disponible una licencia de prueba para desarrolladores aquí.

Sustituya la clave en el archivo appSettings.json que se muestra a continuación.

{
  "IronPdf.License.LicenseKey" : "The Key Here"
}
{
  "IronPdf.License.LicenseKey" : "The Key Here"
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Conclusión

En conclusión, los métodos continue y break son herramientas indispensables para controlar la ejecución de bucles en C#. Al incorporar estratégicamente estas sentencias a su código, puede mejorar su eficacia, legibilidad y mantenimiento. Aunque la sentencia goto en C# proporciona un mecanismo para alterar el flujo de ejecución, su uso debe abordarse con precaución. En la mayoría de los casos, las sentencias de flujo de control estructurado como break, continue o los bucles anidados ofrecen soluciones más claras y fáciles de mantener. Sin embargo, existen nichos de mercado en los que el goto puede utilizarse de forma eficaz y segura, como en determinadas situaciones de gestión de errores. Al igual que con cualquier otra construcción de programación, es fundamental sopesar las ventajas y desventajas y tener en cuenta la legibilidad y facilidad de mantenimiento del código a la hora de decidir si se utiliza goto.

Junto con IronPDF biblioteca de Iron Software para leer y generar documentos PDF, los desarrolladores pueden adquirir conocimientos avanzados para desarrollar aplicaciones modernas.

< ANTERIOR
Html Agility Pack C# (Cómo funciona para desarrolladores)
SIGUIENTE >
Bugsnag C# (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.10 acaba de salir

Descarga gratuita de NuGet Descargas totales: 11,108,738 Ver licencias >