Obtenga información sobre la lógica condicional con instrucciones de rama y bucle
En este tutorial se enseña a escribir código que analiza variables y cambia la ruta de acceso de ejecución en función de dichas variables. Va a usar el explorador para escribir C# de forma interactiva y ver los resultados de la compilación y ejecución del código. Este tutorial contiene una serie de lecciones en las que se analizan las construcciones de bifurcaciones y bucles en C#. En ellas se enseñan los aspectos básicos del lenguaje C#.
Sugerencia
Para pegar un fragmento de código dentro del modo de enfoque debe usar el método abreviado de teclado (Ctrl + v o cmd + v).
Toma de decisiones con la instrucción if
Ejecute el código siguiente en la ventana interactiva. Seleccione el botón Entrar en el modo de enfoque. A continuación, escriba el bloque de código siguiente en la ventana interactiva y seleccione Ejecutar:
int a = 5;
int b = 6;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10.");
Si está ejecutando esto en su entorno, en su lugar debe seguir las instrucciones de la versión local.
Modifique la declaración de b
para que el resultado de la suma sea menor que diez:
int b = 3;
Vuelva a seleccionar el botón Ejecutar. Como la respuesta es menor que diez, no se imprime nada. La condición que está probando es false. 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
Cuando explore C# o cualquier otro lenguaje de programación, cometerá errores al escribir código. El compilador buscará dichos errores y los notificará. Si la salida contiene mensajes de error, revise detenidamente el ejemplo de código y el código de la ventana interactiva para saber qué debe corregir. Este ejercicio le ayudará a aprender la estructura del código de C#.
En este primer ejemplo se muestran la potencia de if
y los tipos booleanos. Un booleano es una variable que puede tener uno de estos dos valores: true
o false
. C# define un tipo especial bool
para las variables booleanas. La instrucción if
comprueba el valor de 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 en función de esas condiciones es muy eficaz. Indaguemos más.
Operaciones conjuntas con if y else
Para ejecutar un código distinto en las bifurcaciones true y false, cree una bifurcación else
para que se ejecute cuando la condición sea false. Pruebe esto:
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 palabra clave else
se ejecuta solo si la condición de prueba es false
. La combinación de if
y else
con condiciones booleanas ofrece toda la eficacia necesaria.
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 palabra clave if
o else
se ejecutará 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 ha creado. 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, según 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 ==
prueba 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. En estos ejemplos también se muestra que puede tener varias instrucciones en cada bifurcación condicional, siempre que las encierre entre {
y }
.
También puede usar ||
para representar "o".
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("Or the first number is equal to the second");
}
else
{
Console.WriteLine("The answer is not greater than 10");
Console.WriteLine("And the first number is not equal to the second");
}
Modifique los valores de a
, b
y c
y cambie entre &&
y ||
para explorar. Obtendrá más conocimientos sobre el funcionamiento de los operadores &&
y ||
.
Uso de bucles para repetir las operaciones
El bucle es otro concepto importante para crear programas más grandes. Debe usar bucles para repetir las instrucciones que desee que se ejecuten más de una vez. Pruebe el código siguiente en la ventana interactiva:
int counter = 0;
while (counter < 10)
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
}
La instrucción while
comprueba una condición y ejecuta la instrucción que aparece después de while
. La comprobación de la condición y la ejecución de dichas instrucciones se repetirán hasta que la condición sea false.
En este ejemplo aparece otro operador nuevo. El código ++
que aparece después de la variable counter
es el operador de incremento. Suma un valor de uno al valor del contador y almacena dicho valor en la variable del contador.
Importante
Asegúrese de que la condición del bucle while
no cambia a false mientras ejecuta el código. En caso contrario, se crea un bucle infinito donde nunca finaliza el programa. 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 bucle while
prueba la condición antes de ejecutar el código que sigue a while
. El bucle do
... while
primero ejecuta el código y después comprueba la condición. Tiene el siguiente aspecto:
int counter = 0;
do
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
} while (counter < 10);
Este bucle do
y el bucle while
anterior funcionan de la misma forma.
Ahora vamos a pasar a una última instrucción del bucle.
Operaciones con el bucle for
El bucle for
es otra instrucción de bucle común que verá en el código de C#. Pruebe el código siguiente en la ventana interactiva:
for (int counter = 0; counter < 10; counter++)
{
Console.WriteLine($"Hello World! The counter is {counter}");
}
Funciona de la misma forma que los bucles while
y do
que ya ha usado. La instrucción for
consta de tres partes que controlan su funcionamiento.
La primera parte es el inicializador de for: int counter = 0;
declara que counter
es la variable de bucle y establece su valor inicial en 0
.
La parte central es la condición de for: counter < 10
declara que este bucle for
debe continuar ejecutándose mientras que el valor del contador sea menor que diez.
La última parte es el iterador de for: counter++
especifica cómo modificar la variable de bucle después de ejecutar el bloque que sigue a la instrucción for
. En este caso, especifica que counter
debe incrementarse en uno cada vez que el bloque se ejecuta.
Experimente con estas partes por su cuenta. Pruebe todos los pasos siguientes:
- Cambie el inicializador para que se inicie en un valor distinto.
- 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: la instrucción foreach
. La instrucción foreach
repite su instrucción con cada elemento de una secuencia de elementos. Se usa más a menudo con colecciones, por lo que se trata en el siguiente tutorial.
Bucles anidados creados
Se puede anidar un bucle while
, do
o for
dentro de otro para crear una matriz mediante la combinación de cada elemento del bucle externo con cada elemento del bucle interno. Vamos a crear un conjunto de pares alfanuméricos para representar filas y columnas.
Un bucle for
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 con 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 ya ha obtenido la información sobre el bucle if
y las construcciones de bucles con el lenguaje C#, trate de escribir código de C# para obtener la suma de todos los enteros de uno a veinte que se puedan dividir entre tres. Tenga en cuenta las siguientes sugerencias:
- El operador
%
proporciona el resto de una operación de división. - La instrucción
if
genera la condición para saber si un número debe formar parte de la suma. - El bucle
for
puede facilitar la repetición de una serie de pasos para todos los números comprendidos entre el uno y el veinte.
Pruébelo usted mismo. Después, revise cómo lo ha hecho. Sugerimos que obtenga 63 como respuesta.
Desafío completo
¿Ha obtenido algo parecido a lo siguiente?
int sum = 0;
for (int number = 1; number < 21; number++)
{
if (number % 3 == 0)
{
sum = sum + number;
}
}
Console.WriteLine($"The sum is {sum}");
¡Enhorabuena!
Ha completado el tutorial interactivo "Bifurcaciones y bucles". Puede seleccionar el vínculo Colección de listas que aparece a continuación para iniciar el tutorial interactivo siguiente. También puede visitar el sitio .NET para descargar el SDK de .NET, crear un proyecto en la máquina y continuar la codificación. La sección "Pasos siguientes" le lleva de vuelta a estos tutoriales.
Puede aprender más sobre estos conceptos en los artículos siguientes:
¿Tiene algún problema con esta sección? Si es así, envíenos sus comentarios para que podamos mejorarla.