LENGUAJE C# Los operadores Los operadores son palabras clave del lenguaje que permiten ejecutar procesamientos sobre variables, valores de retorno de funciones o valores literales (los operandos). La combinación de operadores y de operandos constituye una expresión, que se evaluará en tiempo de ejecución y devolverá un resultado en función de los distintos elementos que la componen. Ya hemos visto el operador de asignación =, que permite asignar un valor a una variable. Este valor puede ser otra variable, un valor literal, el resultado de una función o el resultado de una expresión. Los distintos operadores pueden clasificarse en cuatro familias, relativas al tipo de procesamiento que permiten realizar. 1. Los operadores aritméticos Los operadores aritméticos permiten realizar cálculos sobre sus operandos. Operador Nombre de la operación Ejemplo Resultado + Suma 1+2 3 - Resta 1-2 -1 * Multiplicación 1*2 2 / División 1/2 0.5 % Módulo (resto de la división entera) 1%2 1 Estos operadores se utilizan principalmente con operandos numéricos. Ciertos tipos modifican el comportamiento de estos operadores para ejecutar procesamientos más acordes con su lógica. Es el caso particular del tipo string para el que el operador de suma permite realizar una concatenación, es decir, unir dos cadenas de caracteres. 2. Los operadores de comparación Los operadores de comparación permiten definir expresiones cuyo resultado es un valor booleano. Se utilizan principalmente como condiciones en las estructuras de control. Operador Nombre del operador Ejemplo Resultado == Igualdad 10 == 20 false != Desigualdad "C#" != "VB.NET" true > Superioridad 10 > 20 false >= Superioridad o igualdad 10 >= 20 false < Inferioridad 10 < 20 true <= Inferioridad o igualdad 10 <= 20 true is Comparación de tipo "Hello world" is string true 3. Los operadores lógicos Salvo el operador !, las operaciones lógicas permiten combinar varias expresiones que devuelven un valor booleano, como expresiones de comparación. a. Negación: ! El operador de negación permite invertir un valor booleano. Este valor puede representarse mediante un literal, una variable o una expresión que devuelve un valor booleano. bool booleano1 = true; bool booleano2 = !booleano1; //Llegados a este punto, booleano2 vale false bool comparación = !(booleano1 == booleano2); // booleano1 == booleano2 devuelve false, y comparación vale true b. Y lógico: & El operador Y lógico permite combinar dos expresiones para determinar si son ambas verdaderas. bool booleano1 = true; bool booleano2 = false; bool comparación1 = booleano1 & booleano2; // comparación1 vale false booleano2= true; bool comparación2 = booleano1 & booleano2; // comparación2 vale true c. O lógico: | El operador O lógico permite combinar dos expresiones para determinar si al menos una de ambas expresiones es verdadera. bool booleano1 = true; bool booleano2 = false; bool comparación = booleano1 | booleano2; // comparación vale true d. O exclusivo: ˆ El operador O exclusivo permite combinar dos expresiones para determinar si solamente una de las dos expresiones es verdadera. bool booleano1 = true; bool booleano2 = false; bool comparación1 = booleano1 ˆ booleano2; // comparación1 vale true booleano2 = true; bool comparación2 = booleano1 ˆ booleano2; // comparación2 vale false e. Y condicional: && El operador Y condicional permite combinar dos expresiones para determinar si son ambas verdaderas. El segundo operando que se pasa a este operador no se evaluará si el primero se evalúa como falso. bool booleano1 = false; bool booleano2 = true; bool comparación1 = booleano1 && booleano2; // comparación1 vale false, y booleano2 no se evalúa booleano1 = true; bool comparación2 = booleano1 && booleano2; // comparación2 vale true f. O condicional: || El operador O condicional permite combinar dos expresiones para determinar si al menos una de ambas es verdadera. El segundo operando que se pasa a este operador no se evaluará si el primero se evalúa como verdadero. bool booleano1 = true; bool booleano2 = true; bool comparación1 = booleano1 || booleano2; // comparación1 vale true, y booleano2 no se evalúa booleano1 = false; bool comparación2 = booleano1 || booleano2; // comparación2 vale true