Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
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.
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.
continue;
continue;
continue
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
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.
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.
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
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.
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.
La sintaxis de la declaración goto en C# es sencilla:
goto label;
goto label;
GoTo label
Donde la etiqueta es un identificador seguido de dos puntos (:), que indica la ubicación de destino en el código.
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.")
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.
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:
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.
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.
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.
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.
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.
Optimización del Rendimiento:
Multiproceso completo y compatibilidad asíncrona para una generación eficaz de PDF.
Ahora que conocemos la biblioteca IronPDF, escribamos una aplicación para usar IronPDF y las sentencias continue, break y goto.
En primer lugar, vamos a crear una aplicación de consola de Visual Studio
Indique el nombre y la ubicación 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
Inicialmente, estamos creando contenidos para utilizarlos en un documento PDF.
Preparamos el contenido como documento HTML.
Usamos la instrucción continue dentro del bucle for para imprimir del 1 al 10 y omitir el 5.
Además, utilizamos la instrucción break para imprimir del 1 al 7 y detenerse.
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.
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.
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.
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"
}
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.