Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Instrucciones y bucles de C#
En este tutorial se explica cómo escribir código de C# que examina las variables y cambia la ruta de acceso de ejecución en función de esas variables. Escriba código de C# y vea los resultados de la compilación y ejecución. El tutorial contiene una serie de lecciones que exploran construcciones de bifurcación y bucle en C#. Estas lecciones le enseñan los aspectos básicos del lenguaje C#.
Sugerencia
Cuando un bloque de fragmento de código incluye el botón "Ejecutar", ese botón abre la ventana interactiva o reemplaza el código existente en la ventana interactiva. Cuando el fragmento de código no incluye un botón "Ejecutar", puede copiar el código y agregarlo a la ventana interactiva actual.
Ejecute el código siguiente en la ventana interactiva. Seleccione Ejecutar:
int a = 5;
int b = 6;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10.");
Modifique la declaración de b
para que la suma sea inferior a 10:
int b = 3;
Vuelva a seleccionar el botón Ejecutar . Dado que la respuesta es menor que 10, no se imprime nada. La condición que está probando es falsa. No tiene ningún código para ejecutar porque solo ha escrito una de las bifurcaciones posibles para una instrucción if
: la bifurcación true.
Sugerencia
Al explorar C# (o cualquier lenguaje de programación), se cometen errores al escribir código. El compilador de encuentra esos errores y los notifica a usted. Cuando la salida contiene mensajes de error, examine detenidamente el código de ejemplo y el código de la ventana interactiva para ver qué corregir. Este ejercicio le ayuda a aprender la estructura del código de C#.
En este primer ejemplo se muestra la potencia de los tipos if
y booleanos. Un valor booleano es una variable que puede tener uno de los dos valores: true
o false
. C# define un tipo especial para bool
variables booleanas. La instrucción if
comprueba el valor de un bool
. Cuando el valor es true
, se ejecuta la instrucción que sigue a if
. De lo contrario, se omite.
Este proceso de comprobación de condiciones y ejecución de instrucciones basadas en esas condiciones es eficaz. Vamos a explorar más.
Hacer que if y else trabajen juntos
Para ejecutar código diferente en las ramas verdadero y falso, se crea una rama else
que se ejecuta cuando la condición es falsa. Pruebe el código siguiente:
int a = 5;
int b = 3;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10");
else
Console.WriteLine("The answer is not greater than 10");
La instrucción que sigue a la else
palabra clave se ejecuta solo cuando la condición que se está probando es false
. La combinación de if
y else
con condiciones booleanas proporciona toda la potencia que necesita.
Importante
La sangría debajo de las instrucciones if
y else
se utiliza para los lectores humanos. El lenguaje C# no considera significativos los espacios en blanco ni las sangrías. La instrucción que sigue a la if
palabra clave o else
se ejecuta en función de la condición . Todos los ejemplos de este tutorial siguen una práctica común para aplicar sangría a las líneas en función del flujo de control de las instrucciones.
Dado que la sangría no es significativa, debe usar {
y }
para indicar si desea que más de una instrucción forme parte del bloque que se ejecuta de forma condicional. Los programadores de C# suelen usar esas llaves en todas las cláusulas if
y else
. El siguiente ejemplo es igual al que usted creó. Pruébelo.
int a = 5;
int b = 3;
if (a + b > 10)
{
Console.WriteLine("The answer is greater than 10");
}
else
{
Console.WriteLine("The answer is not greater than 10");
}
Sugerencia
En el resto de este tutorial, todos los ejemplos de código incluyen las llaves, siguiendo las prácticas aceptadas.
Puede probar condiciones más complicadas:
int a = 5;
int b = 3;
int c = 4;
if ((a + b + c > 10) && (a == b))
{
Console.WriteLine("The answer is greater than 10");
Console.WriteLine("And the first number is equal to the second");
}
else
{
Console.WriteLine("The answer is not greater than 10");
Console.WriteLine("Or the first number is not equal to the second");
}
El ==
símbolo comprueba la igualdad. Usar ==
permite distinguir la prueba de igualdad de la asignación, que verá en a = 5
.
&&
representa "y". Significa que ambas condiciones deben cumplirse para ejecutar la instrucción en la bifurcación true. Estos ejemplos también muestran que puede tener varias instrucciones en cada rama condicional, siempre que las incluya en {
y }
.
También puede usar ||
para representar "o":
if ((a + b + c > 10) || (a == b))
Modifique los valores de a
, b
y c
cambie entre &&
y ||
para explorar. Ganas más comprensión sobre cómo funcionan los operadores &&
y ||
.
Uso de bucles para repetir operaciones
El bucle es otro concepto importante para crear programas más grandes. Use bucles para repetir instrucciones que desee ejecutar más de una vez. Pruebe este código en la ventana interactiva:
int counter = 0;
while (counter < 10)
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
}
La while
instrucción comprueba una condición y ejecuta la instrucción después de while
. La comprobación de la condición y la ejecución de dichas instrucciones se repiten hasta que la condición es false.
Hay otro operador nuevo en este ejemplo. El ++
después de la variable counter
es el operador de incremento. Agrega 1 al valor de counter y almacena ese valor en la variable counter.
Importante
Asegúrese de que la condición del while
bucle se convierta en falso mientras ejecuta el código. De lo contrario, se crea un bucle infinito en el que el programa nunca termina. Eso no lo vamos a demostrar, porque el motor que ejecuta el código agotará el tiempo de espera y el programa no generará ninguna salida.
El while
bucle prueba la condición antes de ejecutar el código después de .while
El do
bucle ... while
ejecuta primero el código y, a continuación, comprueba la condición. Tiene este aspecto:
int counter = 0;
do
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
} while (counter < 10);
Este do
bucle y el bucle anterior while
funcionan igual.
Ahora vamos a pasar a una última instrucción del bucle.
Operaciones con el bucle for
Otra instrucción de bucle común que se ve en el código de C# es el for
bucle . Pruebe este código en la ventana interactiva:
for (int counter = 0; counter < 10; counter++)
{
Console.WriteLine($"Hello World! The counter is {counter}");
}
El bucle anterior for
hace el mismo trabajo que el while
bucle y el do
bucle que ya usó. La for
instrucción tiene tres partes que controlan cómo funciona:
- La primera parte es para el inicializador:
int counter = 0;
declara quecounter
es la variable de bucle y establece su valor inicial en0
. - La parte central es la condición for:
counter < 10
declara que estefor
bucle continúa ejecutándose siempre y cuando el valor del contador sea inferior a 10. - La parte final es para iterador:
counter++
especifica cómo modificar la variable de bucle después de ejecutar el bloque siguiendo lafor
instrucción . Aquí se especifica quecounter
se incrementa en 1 cada vez que se ejecuta el bloque.
Experimente con estas condiciones usted mismo. Pruebe cada uno de los cambios siguientes:
- Cambie el inicializador para que se inicie en un valor diferente.
- Cambie la condición para que se detenga en un valor diferente.
Cuando haya terminado, escriba algo de código para practicar con lo que ha aprendido.
Hay otra instrucción de bucle que no se trata en este tutorial: el foreach
. La foreach
instrucción repite su instrucción para cada elemento de una secuencia de elementos. Se usa con más frecuencia en colecciones. Se trata en el siguiente tutorial.
Bucles anidados creados
Un while
, do
o for
bucle se puede anidar dentro de otro bucle para crear una matriz mediante la combinación de cada elemento del bucle externo con cada elemento del bucle interno. Vamos a hacerlo para crear un conjunto de pares alfanuméricos para representar filas y columnas.
Un for
bucle puede generar las filas:
for (int row = 1; row < 11; row++)
{
Console.WriteLine($"The row is {row}");
}
Otro bucle puede generar las columnas:
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The column is {column}");
}
Puede anidar un bucle dentro de otro para formar pares:
for (int row = 1; row < 11; row++)
{
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The cell is ({row}, {column})");
}
}
Puede ver que el bucle externo se incrementa una vez para cada ejecución completa del bucle interno. Invierta el anidamiento de filas y columnas, y vea los cambios por sí mismo.
Combinación de ramas y bucles
Ahora que ha visto la if
instrucción y las construcciones de bucle en el lenguaje C#, vea si puede escribir código de C# para encontrar la suma de todos los enteros del 1 al 20 que son divisibles en 3. Estas son algunas sugerencias:
- El operador
%
proporciona el resto de una operación de división. - La
if
instrucción proporciona la condición para ver si un número debe formar parte de la suma. - El
for
bucle puede ayudarle a repetir una serie de pasos para todos los números del 1 al 20.
Pruébelo tú mismo. Entonces comprueba cómo lo hiciste. Sugerimos que obtenga 63 como respuesta.
¿Se te ocurrió algo como esto?
Has completado el tutorial interactivo de "ramas y bucles". Puede seleccionar el vínculo de colección de listas para iniciar el siguiente tutorial interactivo, o bien puede visitar el sitio de .NET para descargar el SDK de .NET, crear un proyecto en la máquina y seguir codificando. La sección "Pasos siguientes" lo conduce de nuevo a estos tutoriales.
Puede aprender más sobre estos conceptos en los artículos siguientes: