Son operadores que se encargan de unir y comparar dos o más valores, siempre se utilizan en comparaciones de parejas y están dadas por los símbolos:
== : igual que
!= : diferente a
> : mayor que
< : menor que
>= : mayor igual que
<= : menor igual que
Estos operadores se usan para comparar valores de variables por pares es decir,no se pueden comparar más de 2 valores al tiempo:
a > b > c //ERROR
Pero si podemos comparar por separado y uniendo con un operador lógico.
(a > b) && (b > c) //BIEN
Aquí si dice, a es mayor que b y b es mayor que c.
Son operadores de unión, también llamados operadores lógicos, estos operadores pueden unir dos o más pares de valores comparados por medio de los operadores relacionales y están dados por estos símbolos:
&& : Operador AND (Y) quiere decir que todas las condiciones deben ser verdaderas para que se ejecute una acción.
|| : Operador OR (O) quiere decir que de todas las condiciones solo una debe ser verdadera y se asume que con eso es suficiente para hacer determinada acción.
! : Operador NOT (NO) quiere decir que se niega la afirmación para cambiar su valor, es decir cambia de verdadero a falso y de falso a verdadero.
Ejemplo: Programa de la pelota que rebota.
using System;
namespace pelota_bota
{
class Program {
//Declaración de variables globales
public static Random azar=new Random();
public static long retardo;// = 100,000,000
public static int posx,posy;
public static int avance1, avance2;
public static string pelota="©";//184 ©
public static void Main(string[] args) {
//variables locales
bool avanzax, avanzay; int aa1,aa2;
avanzax=true; avanzay=true;
inicio();
//Genera posiciones aleatorias iniciales de la pelota
posx = azar.Next(1,78);posy = azar.Next(1,23);
Console.SetCursorPosition(posx,posy);
//Determina la dirección de avance de forma aleatoria
avance1 = azar.Next(1,2);avance2 = azar.Next(1,2);
//1=avance, 2=retrocede
if(avance1==1){ posx++;avanzax=true; }
if(avance1==2){posx--;avanzax=false; }
//1=avance, 2=retrocede
if(avance2==1){posy++;avanzay=true; }
if(avance1==1){posy--;avanzay=false; }
//inicia ciclo de repeticion infinito
while(true){
//verifica si llegó la pelota a la orilla derecha
if(posx==79){avanzax=false;}
//verifica si llegó la pelota a la orilla izquierda
if(posx==0){avanzax=true;}
//verifica si llegó la pelota a la orilla inferior
if(posy==24){avanzay=false;}
//verifica si llegó la pelota a la orilla superior
if(posy==0){avanzay=true;}
//Guarda la posición para borrar la pelota al avanzar
aa1=posx; aa2=posy;
//avanza la pelota a la derecha
if(avanzax){posx++;}
//avanza la pelota a la izquierda
if(!avanzax){posx--;}
//avanza la pelota para abajo
if(avanzay)posy++;
//avanza la pelota para arriba
if(!avanzay)posy--;
//muestra la pelota
Console.SetCursorPosition(posx,posy);Console.Write(pelota);
//Borra la pelota en la posición anterior
Console.SetCursorPosition(aa1,aa2);Console.Write(" ");
//Genera un tiempo de espera
espera();
}//Vuuelve al inicio del ciclo de repetición
}
//subprogama o función que escribe el letrero inicial
public static void inicio(){
posx=0; posy=0;
Console.SetCursorPosition(posx,posy);
Console.Write("Pelota botando Autor:Jorge Mendoza Grupo:2ABC");
posx=20; posy=24;
Console.SetCursorPosition(posx,posy);
Console.Write("Presiona cualquier tecla para iniciar . . . ");
Console.ReadKey(true);
}
//Subprograma o función que crea el tiempo de espera
public static void espera(){
for(retardo=0; retardo<50000000; retardo++);
}
}
}