Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
En este completo tutorial, cubriremos todo lo que necesitas saber para empezar con el bucle for dentro del método public static void Main
. Exploraremos el bucle for, las variables de bucle, los cuerpos de bucle, las variables de iteración, los bucles internos y externos, los bucles infinitos, las expresiones booleanas, los bucles anidados y mucho más. Comencemos!
Un bucle for
es un tipo de bucle en C#, diseñado específicamente para situaciones en las que sabes exactamente cuántas veces quieres iterar. La sintaxis de un bucle for
en C# se muestra en el siguiente bloque de código
for (initialization; condition; increment)
{
// Cuerpo del bucle
}
for (initialization; condition; increment)
{
// Cuerpo del bucle
}
initialization
Do While condition
' Cuerpo del bucle
increment
Loop
Desglosemos los componentes de un bucle for:
En C#, el método static void Main
o static void Main(Cadena []args)
es el punto de entrada de su aplicación. Aquí es donde su programa comienza a ejecutarse. Aquí hay un ejemplo de cómo usar un bucle for dentro del método static void Main
:
using System;
class Program
{
static void Main()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("This is first for loop!");
}
}
}
using System;
class Program
{
static void Main()
{
for (int i = 0; i < 5; i++)
{
Console.WriteLine("This is first for loop!");
}
}
}
Imports System
Friend Class Program
Shared Sub Main()
For i As Integer = 0 To 4
Console.WriteLine("This is first for loop!")
Next i
End Sub
End Class
En este ejemplo, la variable de bucle int i
se inicializa a 0 y actúa como variable. El bucle continuará ejecutándose mientras i
sea menor que 5
. Después de cada iteración, la operación de incremento i++
aumenta el valor de i
en 1.
Bucles anidados son bucles que se colocan dentro de otros bucles, formando un bucle interior y un bucle exterior con secciones iteradoras. Pueden resultar útiles cuando se trabaja con estructuras de datos multidimensionales, como matrices, o cuando es necesario realizar una determinada operación en cada combinación de elementos.
He aquí un ejemplo de bucle for anidado con bucle interno dentro de bucle externo en C#:
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 2; j++)
{
Console.WriteLine($"i: {i}, j: {j}");
}
}
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 2; j++)
{
Console.WriteLine($"i: {i}, j: {j}");
}
}
For i As Integer = 0 To 2
For j As Integer = 0 To 1
Console.WriteLine($"i: {i}, j: {j}")
Next j
Next i
En este ejemplo, el bucle exterior se ejecuta y comienza con i
igual a 0. A continuación, el bucle interior itera a través de todos los valores posibles de j
antes de pasar al siguiente valor de i
.
Un bucle infinito es un bucle que nunca termina porque su condición de prueba nunca se convierte en falsa. Estos pueden ser peligrosos, ya que pueden hacer que su programa se cuelgue indefinidamente. Tenga cuidado al escribir bucles como el bucle while, el bucle foreach
para asegurarse de que la condición de salida se cumplirá finalmente. El siguiente es un ejemplo de bucle infinito sin condición especificada en C#.
// Este es un ejemplo de bucle infinito
for (int i = 0; ; i++)
{
Console.WriteLine("This loop will run forever!");
}
// Este es un ejemplo de bucle infinito
for (int i = 0; ; i++)
{
Console.WriteLine("This loop will run forever!");
}
' Este es un ejemplo de bucle infinito
Dim i As Integer = 0
Do
Console.WriteLine("This loop will run forever!")
i += 1
Loop
Además de la estructura estándar para bucles, C# también proporciona sentencias de control de bucles, como break
y continue
, que pueden ayudarle a gestionar sus bucles de forma más eficaz.
break
: Esta sentencia se utiliza para salir inmediatamente del bucle. Cuando se encuentra una sentencia break
, el bucle termina, y el programa continúa con la siguiente línea de código fuera del bucle.continuar
: Esta sentencia se utiliza para saltarse el código restante en el cuerpo del bucle para la iteración actual y saltar a la siguiente iteración del bucle.
He aquí un ejemplo que demuestra el uso de break
y continue
en un bucle for:
for (int i = 0; i < 10; i++)
{
if (i == 5)
{
break; // Sale del bucle cuando i es igual a 5
}
if (i % 2 == 0)
{
continue; // Omite los números pares
}
Console.WriteLine($"Odd number: {i}");
}
for (int i = 0; i < 10; i++)
{
if (i == 5)
{
break; // Sale del bucle cuando i es igual a 5
}
if (i % 2 == 0)
{
continue; // Omite los números pares
}
Console.WriteLine($"Odd number: {i}");
}
For i As Integer = 0 To 9
If i = 5 Then
Exit For ' Sale del bucle cuando i es igual a 5
End If
If i Mod 2 = 0 Then
Continue For ' Omite los números pares
End If
Console.WriteLine($"Odd number: {i}")
Next i
En este ejemplo, el bucle deja de ejecutarse cuando i
alcanza 5
. La sentencia continue
se utiliza para omitir los números pares, de forma que sólo se imprimirán los números impares menores que 5
.
La condición del bucle es un booleano que determina si el bucle debe continuar ejecutándose. Esta expresión se evalúa antes de cada iteración, y el bucle sólo se ejecutará si la expresión es true
. Las expresiones booleanas más utilizadas en muchos bucles son:
i < 10
, i 10
, i >= 10
, i == 10
, i != 10
Operadores lógicos: &&
(Y), **`
** (O), **
!`** (NO)
Puede combinar varias expresiones utilizando operadores lógicos para crear condiciones de bucle más complejas. Por ejemplo:
for (int i = 0; i < 10 && i != 5; i++)
{
Console.WriteLine(i);
}
for (int i = 0; i < 10 && i != 5; i++)
{
Console.WriteLine(i);
}
Dim i As Integer = 0
Do While i < 10 AndAlso i <> 5
Console.WriteLine(i)
i += 1
Loop
En este ejemplo, el bucle se ejecutará siempre que i
sea menor que 10
y no igual a 5
.
Un bloque de código es un grupo de sentencias encerradas entre llaves {}
. En un bucle for, el bloque de código que sigue a la declaración del bucle se conoce como cuerpo del bucle. Aquí es donde colocarás el código que quieres ejecutar durante cada iteración del bucle.
for (int i = 0; i < 5; i++)
{
// Este es el cuerpo del bucle
Console.WriteLine($"Iteration: {i}");
}
for (int i = 0; i < 5; i++)
{
// Este es el cuerpo del bucle
Console.WriteLine($"Iteration: {i}");
}
For i As Integer = 0 To 4
' Este es el cuerpo del bucle
Console.WriteLine($"Iteration: {i}")
Next i
En este ejemplo, el cuerpo del bucle consiste en una única sentencia Console.WriteLine
que imprime el número de iteración actual.
Cuando se encuentra un bucle for en su código, se produce la siguiente secuencia de eventos:
false
, el bucle se salta, y el programa continúa con la siguiente línea de código fuera del bucle.true
, se ejecuta el cuerpo del bucle.false
.IronPDF es una potente biblioteca para generar, editar y renderizar archivos PDF en C#. Puede ser una herramienta útil cuando se trabaja con bucles for, especialmente si necesita crear informes o documentos dinámicos basados en los datos procesados en sus bucles. En esta sección, le mostraremos cómo utilizar IronPDF junto con bucles for de C# para generar un informe sencillo.
En primer lugar, deberá instalar el paquete NuGet de IronPDF. Para ello, utilice la consola del gestor de paquetes de Visual Studio:
Install-Package IronPDF
Una vez instalado IronPDF, vamos a crear un ejemplo sencillo que genere un archivo Informe PDF a partir de HTML que contiene una tabla de números y sus cuadrados utilizando un bucle for.
Paso 1: Añada los espacios de nombres necesarios.
using IronPdf;
using System.IO;
using IronPdf;
using System.IO;
Imports IronPdf
Imports System.IO
Paso 2: Crear un nuevo método llamado GenerateReport
.
static void GenerateReport()
{
// Crear una plantilla HTML para el informe
var htmlTemplate = @"
<html>
<head>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: center;
}
</style>
</head>
<body>
<h1>Number Squares Report</h1>
<table>
<thead>
<tr>
<th>Number</th>
<th>Square</th>
</tr>
</thead>
<tbody>
{0}
</tbody>
</table>
</body>
</html>";
// Generar las filas de la tabla mediante un bucle for
string tableRows = "";
for (int i = 1; i <= 10; i++)
{
tableRows += $"<tr><td>{i}</td><td>{i * i}</td></tr>";
}
// Inserte las filas de la tabla generada en la plantilla HTML
string finalHtml = string.Format(htmlTemplate, tableRows);
// Crear un nuevo documento PDF a partir del HTML utilizando dos variables
var pdf = new IronPdf.ChromePdfRenderer();
var document = pdf.RenderHtmlAsPdf(finalHtml);
// Guardar el PDF en un archivo
document.SaveAs("NumberSquaresReport.pdf");
}
static void GenerateReport()
{
// Crear una plantilla HTML para el informe
var htmlTemplate = @"
<html>
<head>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: center;
}
</style>
</head>
<body>
<h1>Number Squares Report</h1>
<table>
<thead>
<tr>
<th>Number</th>
<th>Square</th>
</tr>
</thead>
<tbody>
{0}
</tbody>
</table>
</body>
</html>";
// Generar las filas de la tabla mediante un bucle for
string tableRows = "";
for (int i = 1; i <= 10; i++)
{
tableRows += $"<tr><td>{i}</td><td>{i * i}</td></tr>";
}
// Inserte las filas de la tabla generada en la plantilla HTML
string finalHtml = string.Format(htmlTemplate, tableRows);
// Crear un nuevo documento PDF a partir del HTML utilizando dos variables
var pdf = new IronPdf.ChromePdfRenderer();
var document = pdf.RenderHtmlAsPdf(finalHtml);
// Guardar el PDF en un archivo
document.SaveAs("NumberSquaresReport.pdf");
}
Shared Sub GenerateReport()
' Crear una plantilla HTML para el informe
Dim htmlTemplate = "
<html>
<head>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
text-align: center;
}
</style>
</head>
<body>
<h1>Number Squares Report</h1>
<table>
<thead>
<tr>
<th>Number</th>
<th>Square</th>
</tr>
</thead>
<tbody>
{0}
</tbody>
</table>
</body>
</html>"
' Generar las filas de la tabla mediante un bucle for
Dim tableRows As String = ""
For i As Integer = 1 To 10
tableRows &= $"<tr><td>{i}</td><td>{i * i}</td></tr>"
Next i
' Inserte las filas de la tabla generada en la plantilla HTML
Dim finalHtml As String = String.Format(htmlTemplate, tableRows)
' Crear un nuevo documento PDF a partir del HTML utilizando dos variables
Dim pdf = New IronPdf.ChromePdfRenderer()
Dim document = pdf.RenderHtmlAsPdf(finalHtml)
' Guardar el PDF en un archivo
document.SaveAs("NumberSquaresReport.pdf")
End Sub
Llame al método GenerateReport
desde su archivo Program.cs:
GenerateReport();
GenerateReport();
GenerateReport()
Cuando ejecute este ejemplo, se generará un informe PDF llamado "NumberSquaresReport.pdf" en el directorio de salida de su aplicación. El informe contendrá una tabla de números del 1 al 10 y sus cuadrados, generada mediante un bucle for de C#.
En conclusión, este completo tutorial le ha proporcionado una base sólida en C# para los bucles y sus conceptos relacionados. Hemos explorado las variables de bucle, los cuerpos de bucle, las variables de iteración, los bucles internos y externos, los bucles infinitos, las expresiones booleanas, los bloques de código, los bucles anidados e incluso hemos demostrado cómo integrar la potente biblioteca IronPDF para generar informes PDF dinámicos utilizando bucles for.
IronPDF ofrece un prueba gratuita para que pruebes sus capacidades, y si lo encuentras útil, la licencia comienza desde $749.
9 productos API .NET para sus documentos de oficina