Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
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 sobreIronPDF: una sólida biblioteca PDF en C# deIron Software para leer y escribir documentos PDF.
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.
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 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.
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.
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 sentencia break, haciendo que el bucle termine prematuramente. Como resultado, sólo se imprimirán los números del 1 al 5.
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.
La sintaxis de la sentencia goto en C# es sencilla:
goto label;
goto label;
GoTo label
Cuando la etiqueta es un identificador seguido de dos puntos(:)que indica la posició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 sentencia goto transfiere el control a la etiqueta exitLoop cuando se cumple la condición i * j > 10, rompiendo efectivamente el bucle anidado.
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:
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.
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.
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.
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.
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.
Optimización del rendimiento:
Multiproceso completo y compatibilidad asíncrona para una generación eficaz de PDF.
Ahora que conocemos la biblioteca IronPDF, vamos a escribir una aplicación para utilizar 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 sentencia continue dentro del bucle for para imprimir del 1 al 10 y saltarnos el 5.
Además, utilizamos la sentencia break para imprimir de 1 a 7 y romper.
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.
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.
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.
Explorar los detalles de licencia de IronPDF.
Hay disponible una licencia de prueba para desarrolladoresObtenga 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 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 conIronPDF - Soluciones integrales de PDF biblioteca deIron Software para leer y generar documentos PDF, los desarrolladores pueden adquirir conocimientos avanzados para desarrollar aplicaciones modernas.
9 productos API .NET para sus documentos de oficina