Ejercicio: Evaluación de una expresión
- 11 minutos
La lógica de decisión se usa para establecer rutas alternativas mediante código, donde la decisión sobre qué ruta de acceso seguir se basa en la evaluación de una expresión. Por ejemplo, puede escribir código que ejecute una de las dos rutas de acceso en función de una entrada de usuario. Si el usuario escribe la letra "a", el código ejecutará un bloque de código. Si escribe la letra "b", el código ejecutará un bloque de código diferente. En este ejemplo, va a controlar la ruta de acceso de ejecución en función del valor asignado a una cadena. El código selecciona una ruta de acceso de ejecución basada en una expresión, cómo se evalúa esa expresión y la lógica subyacente que se utiliza para definir las rutas de acceso.
Examinar cómo construir y evaluar una expresión es un buen punto de partida.
¿Qué es una expresión?
Una expresión es cualquier combinación de valores (literales o de variable), operadores y métodos que devuelven un solo valor. Una instrucción es una instrucción completa de C#; las instrucciones se componen de una o varias expresiones. Por ejemplo, la siguiente instrucciónif contiene una expresión única que devuelve un valor único:
if (myName == "Luiz")
Es posible que haya pensado que el valor devuelto por una expresión sería un número o quizá una cadena. Es cierto que los desarrolladores de aplicaciones usan diferentes tipos de expresiones para distintos propósitos. En este caso, al desarrollar una instrucción de selección if, usará una expresión que devuelva true o false. Los desarrolladores se refieren a este tipo de expresión como una expresión booleana. Cuando el código incluye una expresión booleana, el valor devuelto siempre es un valor único true o false.
Las expresiones booleanas son importantes porque el código puede utilizar estas expresiones para decidir qué bloque de código se va a ejecutar.
Hay muchos tipos diferentes de operadores que se pueden usar dentro de una expresión booleana. Por ejemplo, la if instrucción anterior usa el operador == de igualdad para comprobar si se asigna una variable de cadena a un valor determinado. El operador que elija dependerá de las rutas de acceso de código disponibles, las condiciones asociadas a las rutas de acceso y la lógica de aplicación subyacente.
Evaluación de igualdad y desigualdad
Una de las evaluaciones de código más comunes es una comprobación para ver si dos valores son iguales. Al comprobar la igualdad, buscará el operador de igualdad == entre los dos valores que se están comprobando. Si los valores de cada lado del operador de igualdad son equivalentes, la expresión devuelve true. De lo contrario, devuelve false.
Por el contrario, es posible que también tenga que comprobar si dos valores no son iguales. Para comprobar la desigualdad, usará el operador de desigualdad != entre los dos valores.
Es posible que se pregunte por qué se necesitan operadores de igualdad y desigualdad. El motivo le va a quedar más claro cuando aprenda a crear instrucciones de bifurcación y comience a escribir código real. Dos operadores que realizan tareas opuestas permiten ser más expresivo y compacto.
Ahora es el momento de preparar el entorno de codificación y comenzar a escribir código que evalúe expresiones booleanas.
Preparación del entorno de programación
Este módulo incluye actividades prácticas que le guiarán en el proceso de compilación y ejecución de código de demostración. Se recomienda realizar estas actividades con Visual Studio Code como entorno de desarrollo. El uso de Visual Studio Code para estas actividades le ayudará a familiarizarse con la escritura y la ejecución de código en un entorno de desarrollo que usan profesionales de todo el mundo.
Abra Visual Studio Code.
Puede usar el menú Inicio de Windows (o un recurso equivalente en otro sistema operativo) para abrir Visual Studio Code.
En el menú Archivo de Visual Studio Code, seleccione Abrir archivo.
En el cuadro de diálogo Abrir carpeta, vaya a la carpeta Desktop de Windows.
Si tiene una ubicación de carpeta diferente donde guarda los proyectos de código, úsela. Para este ejercicio, lo importante es tener una ubicación fácil de encontrar y recordar.
En el cuadro de diálogo Abrir carpeta, elija Seleccionar carpeta.
Si ve un cuadro de diálogo de seguridad donde se le pregunta si confía en los autores, seleccione Sí.
En Visual Studio Code, en el menú Terminal, seleccione Nuevo terminal.
Observe que el símbolo del sistema del terminal muestra la ruta de acceso de la carpeta actual. Por ejemplo:
C:\Users\someuser\Desktop>Nota
Si está trabajando en su propio equipo, en lugar de en un entorno aislado u hospedado, y ha realizado otros módulos de Microsoft Learn de esta serie de C#, es posible que ya haya creado una carpeta de proyecto para ejemplos de código. Si este es el caso, puede omitir el siguiente paso, que es para crear una aplicación de consola en la carpeta TestProject.
En la terminal, para crear una nueva aplicación de consola en una carpeta especificada, escriba el siguiente comando:
dotnet new console -o ./CsharpProjects/TestProjectEste comando de la CLI de .NET usa una plantilla de programa de .NET para crear un nuevo proyecto de aplicación de consola de C# en la ubicación de carpeta especificada. El comando crea las carpetas CsharpProjects y TestProject, y usa TestProject como nombre del archivo
.csproj.Si se muestra un mensaje que indica que los archivos ya existen, continúe con los pasos siguientes. Reutilizará los archivos de proyecto existentes.
En la vista EXPLORER, expanda la carpeta CsharpProjects .
Debería ver la carpeta TestProject y dos archivos, un archivo de programa de C# denominado Program.cs y un archivo de proyecto de C# denominado TestProject.csproj.
En el menú Archivo de Visual Studio Code, seleccione Abrir archivo.
En el cuadro de diálogo Abrir carpeta , seleccione la carpeta CsharpProjects y, a continuación, seleccione Seleccionar carpeta.
En la vista EXPLORER, expanda la carpeta TestProject y, a continuación, seleccione Program.cs.
Elimine las líneas de código que contiene.
Usará este proyecto de consola de C# para crear, compilar y ejecutar ejemplos de código durante este módulo.
Cierre el panel del terminal.
Uso del operador de igualdad
Asegúrese de que ha abierto Visual Studio Code y de que Program.cs se muestra en el panel Editor.
Nota
Program.cs debe estar vacío. Si no es así, seleccione y elimine todas las líneas de código.
En el Editor de Visual Studio Code, escriba el código siguiente.
Console.WriteLine("a" == "a"); Console.WriteLine("a" == "A"); Console.WriteLine(1 == 2); string myValue = "a"; Console.WriteLine(myValue == "a");En el menú Archivo Visual Studio Code, seleccione Guardar.
El archivo Program.cs debe guardarse antes de compilar o ejecutar el código.
En el panel EXPLORADOR, para abrir un terminal en la ubicación de la carpeta TestProject, haga clic con el botón derecho en TestProject y seleccione abrir en terminal integrado.
Se abrirá un panel del terminal. El terminal debe incluir un símbolo del sistema que muestre que dicho terminal está abierto en la ubicación de la carpeta TestProject.
En el símbolo del sistema del terminal, para ejecutar el código, escriba dotnet run y presione Intro.
Nota
Si ve un mensaje que indica "No se ha podido encontrar un proyecto para ejecutar", asegúrese de que el símbolo del sistema del terminal muestra la ubicación de carpeta TestProject prevista. Por ejemplo:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Debería ver la salida siguiente.
True False False True
Mejora de la comprobación de la igualdad entre cadenas mediante métodos auxiliares integrados de la cadena
Es posible que le sorprenda que la línea Console.WriteLine("a" == "A"); genere false. Al comparar cadenas, el uso de mayúsculas y minúsculas importa.
Además, observe esta línea de código:
Console.WriteLine("a" == "a ");
Aquí ha añadido un carácter de espacio al final de la cadena. Esta expresión también generará false.
En algunos casos, tener un carácter de espacio antes o después del texto podría ser perfectamente aceptable. Pero si necesita aceptar una coincidencia que no sea exacta, puede "manipular" primero los datos. "Manipular" los datos significa que realiza alguna limpieza antes de llevar a cabo una comparación de igualdad.
Por ejemplo, considere el caso en el que se esté recopilando la entrada de usuario dentro de un bucle. Después de escribir cada valor, puede proporcionar al usuario un mensaje para determinar si desea continuar, como Do you want to continue (Y/N)?. Si el usuario quiere continuar, es probable que escriba y o Y. Querrá que el código interprete ambos valores igual, aunque y no sea equivalente a Y.
Antes de comprobar la igualdad de dos valores de cadena, especialmente cuando un usuario ha escrito uno o ambos valores, debe:
- Asegurarse de que ambas cadenas estén en su totalidad en mayúsculas o en minúsculas con el método auxiliar
ToUpper()oToLower()en cualquier valor de cadena. - Quitar los espacios en blanco iniciales o finales con el método auxiliar
Trim()en cualquier valor de cadena.
Puede mejorar la comprobación de igualdad anterior encadenando estos dos métodos de ayuda en ambos valores, tal como se muestra en el siguiente listado de código:
Reemplace el código del editor de Visual Studio Code por el código siguiente:
string value1 = " a"; string value2 = "A "; Console.WriteLine(value1.Trim().ToLower() == value2.Trim().ToLower());Guarde el archivo de código y use Visual Studio Code para ejecutar el código.
Tenga en cuenta que, al ejecutar el código esta vez, genera True.
Uso del operador de desigualdad
Use el operador de comentario de línea
//para comentar todo el código del paso anterior.En el Editor de Visual Studio Code, escriba el código siguiente.
Console.WriteLine("a" != "a"); Console.WriteLine("a" != "A"); Console.WriteLine(1 != 2); string myValue = "a"; Console.WriteLine(myValue != "a");Guarde el archivo de código y use Visual Studio Code para ejecutar el código.
Debería ver la salida siguiente.
False True True False
Como cabría esperar, el resultado al usar el operador de desigualdad es lo contrario de lo que ha visto al utilizar el operador de igualdad. Esto significa que el código también se bifurcará en sentido contrario, que puede ser exactamente lo que desee.
Evaluación de comparaciones
Al trabajar con tipos de datos numéricos, va a querer determinar si un valor es mayor, menor o igual que otro valor. Use los siguientes operadores para realizar estos tipos de comparaciones:
- Mayor que
> - Menor que
< - Mayor o igual que
>= - Menor o igual que
<=
Naturalmente, los operadores == y != que ha utilizado para comparar valores de cadena anteriores también funcionarán al comparar tipos de datos numéricos.
Uso de los operadores de comparación
Use el operador de comentario de línea
//para convertir en comentario todo el código de la tarea anterior.En el Editor de Visual Studio Code, escriba el código siguiente.
Console.WriteLine(1 > 2); Console.WriteLine(1 < 2); Console.WriteLine(1 >= 1); Console.WriteLine(1 <= 1);Guarde el archivo de código y, a continuación, use Visual Studio Code para compilar y ejecutar el código.
Debería ver el siguiente resultado:
False True True True
Métodos que devuelven un valor booleano
Algunos métodos devuelven un valor booleano (true o false). En el ejercicio siguiente se usa un método integrado en la clase String para determinar si una cadena mayor contiene o no una palabra o frase específica que sea significativa para su aplicación.
Nota
Algunos tipos de datos tienen métodos que realizan tareas de utilidad. El tipo de datos String tiene muchos. Varios devuelven un valor booleano que incluye Contains(), StartsWith() y EndsWith(). Puede obtener más información sobre ellos en el módulo de Microsoft Learn "Manipulación de datos alfanuméricos mediante métodos de la clase String en C#".
Uso de un método que devuelve un valor booleano
Use el operador de comentario de línea
//para comentar todo el código del paso anterior.En el Editor de Visual Studio Code, escriba el código siguiente.
string pangram = "The quick brown fox jumps over the lazy dog."; Console.WriteLine(pangram.Contains("fox")); Console.WriteLine(pangram.Contains("cow"));Guarde el archivo de código y, a continuación, use Visual Studio Code para compilar y ejecutar el código.
Debería ver la salida siguiente.
True False
¿Qué es la negación lógica?
El término "Negación lógica" hace referencia al operador unario de negación !. Algunas personas llaman a este operador el "operador not". Cuando coloca el operador ! antes de una expresión condicional (o cualquier código que se evalúe como true o false), obliga al código a invertir la evaluación del operando. Cuando se aplica la negación lógica, la evaluación genera true, si el operando se evalúa como false, y false, si el operando se evalúa como true.
Este es un ejemplo que puede ayudarle a ver la conexión entre estas ideas. Las dos líneas de código siguientes producen el mismo resultado. La segunda línea es más compacta.
// These two lines of code will create the same output
Console.WriteLine(pangram.Contains("fox") == false);
Console.WriteLine(!pangram.Contains("fox"));
Uso del operador de negación lógica
Use el operador de comentario de línea
//para comentar todo el código del paso anterior.En el Editor de Visual Studio Code, escriba el código siguiente.
string pangram = "The quick brown fox jumps over the lazy dog."; Console.WriteLine(!pangram.Contains("fox")); Console.WriteLine(!pangram.Contains("cow"));Guarde el archivo de código y, a continuación, use Visual Studio Code para compilar y ejecutar el código.
Debería ver la salida siguiente.
False True
Operador de desigualdad frente a negación lógica
El operador de desigualdad != incluye un carácter !, pero no debe confundirse con la negación lógica. El operador de desigualdad devuelve true si sus operandos no son iguales y devuelve false si los operandos son iguales. Para los operandos de los tipos integrados, la expresión x != y produce el mismo resultado que la expresión !(x == y) (un ejemplo de negación lógica).
En el ejemplo de código siguiente se muestra el uso del operador !=:
int a = 7;
int b = 6;
Console.WriteLine(a != b); // output: True
string s1 = "Hello";
string s2 = "Hello";
Console.WriteLine(s1 != s2); // output: False
Resumen
Estas son las principales enseñanzas sobre la evaluación de expresiones booleanas hasta el momento:
- Hay muchos tipos diferentes de expresiones que se evalúan en
trueofalse. - Evalúe la igualdad mediante el operador
==. - La evaluación de la igualdad de cadenas exige que se considere la posibilidad de que las cadenas tengan distintos usos de mayúsculas y minúsculas y espacios iniciales o finales. En función de la situación, use los métodos auxiliares
ToLower()oToUpper()y el método auxiliarTrim()para mejorar la probabilidad de que dos cadenas sean iguales. - Evalúe la desigualdad mediante el operador
!=. - Evalúe las operaciones mayor que, menor que y similar mediante operadores de comparación como
>,<,>=y<=. - Si un método devuelve un valor booleano, se puede usar como una expresión booleana.
- Use el operador de negación lógica
!para evaluar el contrario de una expresión dada.
Comprobación de conocimientos
Comentarios
Resultoulle útil esta páxina?
Non
Necesitas axuda con este tema?
Queres probar a usar Preguntar Learn para aclarar ou guiarte a través deste tema?