AYUDA .NET

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

Chipego
Chipego Kalinda
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 declaraciones fundamentales para controlar los 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, profundizamos en las intricacias 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 - una robusta biblioteca de PDF en C# de Iron Software para leer y escribir documentos PDF.

Comprender la declaración 'continue;'

La declaración continue se utiliza dentro de las estructuras de bucle para omitir el bloque de código restante y proceder a la siguiente iteración del bucle. Esencialmente, le indica al control del programa que omita el código restante de la iteración actual y pase a la siguiente iteración.

Sintaxis

continue;
continue;
continue
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

En este ejemplo, cuando i es igual a 5, se ejecuta la instrucción continue, omitiendo 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# Continue (Cómo funciona para desarrolladores): Figura 1 - Salida de consola que muestra que el caso 5 se omite debido a la instrucción de continuación

Explorar el método "break;

Contrario a continue, la sentencia break se utiliza para salir de un bucle prematuramente. 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
$vbLabelText   $csharpLabel

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

Explore la declaración 'goto';

La declaración goto en C# proporciona una forma de transferir el control a una etiqueta específica dentro del mismo método, dentro de la misma instrucción switch o dentro del mismo bucle. Aunque goto puede ser una herramienta poderosa para alterar el flujo de ejecución a saltos de instrucciones, a menudo se desaconseja en las prácticas de programación modernas debido a su potencial para hacer el código 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 declaración goto en C# es sencilla:

goto label;
goto label;
GoTo label
$vbLabelText   $csharpLabel

Donde la etiqueta es un identificador seguido de dos puntos (:), que indica la ubicació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.")
$vbLabelText   $csharpLabel

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

Presentando IronPDF - Biblioteca PDF Integral de Iron Software.

IronPDF, desarrollado por Iron Software, es una poderosa biblioteca PDF de C# que ofrece una solución todo-en-uno para trabajar con PDFs 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 contenido HTML a formato PDF sin problemas. Puede generar PDF a partir de HTML, MVC, ASPX e incluso imágenes.

  2. Firmar, Editar y Leer PDFs: Con más de 50 funciones, IronPDF te 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 se ejecuta en varias versiones de .NET, incluyendo .NET Core, .NET Standard y .NET Framework. También está disponible para Java, Node.js y Python.

  4. Compatibilidad y Entornos:

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

    • Tipos de proyecto: Funciona con aplicaciones web (Blazor y WebForms), de escritorio (WPF y MAUI), y de consola.

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

    • IDEs: Se integra perfectamente con Microsoft Visual Studio y JetBrains Rider.

    • Sistemas Operativos y Procesadores: Funciona en Windows, Mac y Linux (x64, x86, ARM).
  5. Estándares 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.
  6. 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 biblioteca IronPDF, escribamos una aplicación para usar 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# Continue (Cómo Funciona para Desarrolladores): Figura 2 - Creación de una aplicación de consola de Visual Studio

Indique el nombre y la ubicación del proyecto.

C# Continue (Cómo funciona para desarrolladores): Figura 3 - Proporcione 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

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
$vbLabelText   $csharpLabel

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 instrucción continue dentro del bucle for para imprimir del 1 al 10 y omitir el 5.

  4. Además, utilizamos la instrucción break para imprimir del 1 al 7 y detenerse.

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

Salida

C# Continue (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 control de flujo estructurado como break, continue o bucles anidados puede hacer que tu código sea más legible y comprensible. Las declaraciones goto pueden hacer que el código sea más difícil de seguir, especialmente en bases de código más grandes o cuando se usan en exceso.

  2. Evitar Consecuencias No Deseadas: El mal uso de goto puede llevar a un código espagueti y dificultar el razonamiento sobre el comportamiento del programa. Es esencial usar goto con prudencia y asegurarse de que su uso sea claro y esté bien documentado.

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

  4. Consideraciones sobre el 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 la legibilidad en lugar del rendimiento.

Licencia (prueba disponible)

Explorar detalles de licencias de IronPDF.

Una licencia de prueba para desarrolladores está disponible Obtener una licencia de prueba.

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

{
  "IronPdf.License.LicenseKey": "The Key Here"
}

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 declaración 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 control de flujo estructuradas como break, continue, o 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 la biblioteca IronPDF - Soluciones Completas de PDF de Iron Software para leer y generar documentos PDF, los desarrolladores pueden adquirir habilidades avanzadas para desarrollar aplicaciones modernas.

Chipego
Ingeniero de software
Chipego tiene una habilidad natural para escuchar que le ayuda a comprender los problemas de los clientes y a ofrecer soluciones inteligentes. Se unió al equipo de Iron Software en 2023, después de estudiar una licenciatura en Tecnología de la Información. IronPDF e IronOCR son los dos productos en los que Chipego se ha centrado, pero su conocimiento de todos los productos crece día a día, a medida que encuentra nuevas formas de ayudar a los clientes. Disfruta de lo colaborativa que es la vida en Iron Software, con miembros del equipo de toda la empresa que aportan su variada experiencia para contribuir a soluciones eficaces e innovadoras. Cuando Chipego está lejos de su escritorio, a menudo se le puede encontrar disfrutando de un buen libro o jugando al fútbol.
< ANTERIOR
Html Agility Pack C# (Cómo funciona para desarrolladores)
SIGUIENTE >
Bugsnag C# (Cómo funciona para desarrolladores)