Capítulo 002 Ejercicio 006 (Operadores Relacionales y Lógicos)

// Operadores Relacionales y Lógicos
import java.util.*;

public class Logico{

/** Sólo es posible aplicar AND, OR o NOT a valores boolean. No se puede
* construir una expresión lógica con valores que no sean de tipo boolean, cosa que si
* se puede hacer en C y C++. Se pueden ver intentos fallidos de hacer esto en las líneas que
* comienzan por //! en el ejemplo siguiente. Sin embargo, las sentencias que vienen a
* continuación producen valores lógicos utilizando comparaciones relacionales, y después
* se usan operaciones lógicas en los resultados.
*
* Obsérvese que un valor lógico se convierte automáticamente a formato de texto si se utiliza
* allí donde se espera un String.
*
* Se puede reemplazar la definición int en el programa siguiente por cualquier otro tipo de
* datos primitivo, excepto boolean. Hay que tener en cuenta, sin embargo, que la comparación
* de números en coma flotante es muy estricta. Un número que sea diferente por muy poco de otro número
* sigue siendo "no igual". Un número infinitamente próximo a cero es distinto de cero.
*/

public static void main(String args[]){
Random aleatorio = new Random();
int i = aleatorio.nextInt() % 100;
int j = aleatorio.nextInt() % 100;
visualizar("i = " + i);
visualizar("j = " + j);
visualizar("i > j es " + (i>j));
visualizar("i < j es " + (i= j es " + (i>=j));
visualizar("i <= j es " + (i<=j));
visualizar("i == j es " + (i==j));
visualizar("i != j es " + (i!=j));

// Tratar un int como un boolean no es legal en Java

//! visualizar("i && j es " + (i&&j));
//! visualizar("i || j es " + (i||j));
//! visualizar("!i es " + !i);

visualizar("(i<10) && (j<)10) es " + ((i<10) && (j<10)));
visualizar("(i<10) || (j<)10) es " + ((i<10) || (j<10)));

}

static void visualizar(String s){
System.out.println(s);
}

}