Anda di halaman 1dari 11

Operadores En Java

En Java disponemos de los operadores lgicos habituales en lenguajes


de programacin como son es igual, es distinto, menor, menor o
igual, mayor, mayor o igual, and (y), or (o) y not (no). La sintaxis se basa
en smbolos como veremos a continuacin y cabe destacar que hay que
prestar atencin a no confundir == con = porque implican distintas cosas.
OPERADOR

DESCRIPCIN

==

Es igual

!=

Es distinto

<, <=, >, >=

Menor, menor o igual, mayor, mayor o igual

&&

Operador and (y)

||

Operador or (o)

Operador not (no)

El operador || se obtiene en la mayora de los teclados pulsando ALT GR


+ 1, es decitecla ALT GR y el nmero 1 simultneamente.
Los operadores && y || se llaman operadores en cortocircuito porque si no se
cumple la condicin de un trmino no se evala el resto de la operacin.
Por ejemplo:
(a == b && c != d && h >= k) tiene tres evaluaciones: la primera
comprueba si la variable a es igual a b. Si no se cumple esta condicin,
el resultado de la expresin es falso y no se evalan las otras dos
condiciones posteriores.
En un caso como ( a < b || c != d || h <= k) se evala si a es menor que b.
Si se cumple esta condicin el resultado de la expresin es verdadero y
no se evalan las otras dos condiciones posteriores.

El operador ! recomendamos no usarlo hasta que se tenga una cierta


destreza en programacin. Una expresin como (!Visible) devuelve false
si (Visible == true), o true si (Visible == false). En general existen
expresiones equivalentes que permiten evitar el uso de este operador
cuando se desea.
ORDEN DE PRIORIDAD, PRELACIN O PRECEDENCIA

Los operadores lgicos y matemticos tienen un orden de prioridad o


precedencia. Este es un esquema general que indica el orden en que
deben evaluarse en la mayora de los lenguajes de programacin:

Una expresin como A+B == 8 && A-B == 1 siendo A = 3 y B = 5


supondr que se evala primero A+B que vale 8, luego se evala A-B que

vale -2. Luego se evala si se cumple que la primera operacin es cierta


y luego si la segunda tambin es cierta, resultando que no, por lo que la
expresin es falsa.

Clase Math
La clase Math no se puede instanciar, ya que todos sus mtodos son estticos,
es decir, no podemos crear objetos de esta clase e ir llamando a sus mtodos.
Esta clase posee 2 atributos estticos que contiene las 2 constantes ms
usadas:

static double E: Posee el valor numrico real ms cercano a E

static double PI: Posee el valor numrico real ms cercano a PI

Que decir tiene, que estas 2 constantes son las ms utilizadas en el mundo
matemtico y estn escritas en maysculas (E,PI)no para resaltar su
importancia, sino porque las constantes en Java son escritas en maysculas en
su totalidad, para que se sepa que es una constante y no una variable.

Los mtodos ms utilizados de esta clase son:

-double random(): Devuelve un nmero aleatorio igual o mayor que 0.0 y


menor que 1.0:

En este ejemplo vamos a obtener 10 nmeros aleatorios de 1 a 10 (da igual si


estn repetidos) y los vamos a mostrar por pantalla, vamos a comentar las
dudas que os puedan surgir:

-Por qu pongo (int) delante de Math.random()?


Eso es un "casting". Como Math.random() nos devuelve un valor "double"con el
"casting" le hacemos entender que aunque me devuelva un valor"double" yo lo
quiero "int", con lo cual me hace la conversin de "double" a"int".
-Por qu multiplico por 10?
Multiplico por 10 porque el nmero real que nos va a devolver est
comprendido entre 0 .0 y 1 con lo cual, si nos devolviese "0.73" al multiplicarlo
por 10, nos devolvera 7.3, posteriormente con el "casting" a "int" nos
devolvera el redondeo de 7.3, que en este caso es 7.
-Por qu pongo +1?
El +1 se pone para que nos de un resultado entre 1 y 10, ya que sino nos
devolvera un valor entre 0 y 9, recordar que dije igual o mayor que 0.0 y
menor que 1, que no igual a 1, nunca nos dar 1, pero si un valor muy
aproximado de l.
-tipo_basico max(numero1,numero2): Devuelve el mayor de los 2 nmeros
pasados por parmetros, este mtodo est sobrecargado para devolver
diferentes tipos de nmeros(int, long, float, double).

-tipo_basico min(numero1,numero2): Exactamente igual que el mtodo


anterior "max" pero devolviendo el valor mnimo:

-double ceil(double numero): Devuelve el entero mayor del nmero


pasado por parmetro:

-double floor(double nmero): Devuelve el entero menor del nmero


pasado por parmetro:

-double round(double nmero): Devuelve el redondeo del nmero


pasado por parmetro:

-double pow(double a, double b): Devuelve el resultado de


elevar "a" a "b":

-double sqrt(double nmero): Devuelve la raz cuadrada del nmero


pasado por parmetro:

Clase Scanner En Java


Java tiene un mtodo llamado System.in, la cual obtiene la informacin
de usuario. Sin embargo, Sytem.in no es tan simple como System.out.
La razn porque no es tan fcil es porque System.in solo lee la
informacin en bytes. Bytes no nos sirve de mucho ya que los
programas usualmente trabajan con valores de otro tipo (integrales,
Strings, bool, etc.). Para solucionar este problema usamos la
clase Scanner. La clase Scanner est diseada para leer los bytes y
convertirlo en valores primitivos (int, double, bool, etc.) o en valores
String.
A continuacin se detalla el funcionamiento de esta clase:
Primero tiene que crear un objeto Scanner y conectarlo con System.in
Scanner teclado = new Scanner(System.in);

Veamos este cdigo por partes. La primera parte:

Scanner teclado

Este cdigo declara una variable llamado teclado. El tipo de data de esta
variable es Scanner. Ya que Scanner es una clase, la variable teclado
es un objeto de la clase Scanner.
La segunda parte:
= new Scanner(System.in);
Lo primero que vemos es el smbolo =, lo cual esta asignando un valor a
la variable teclado. El valor es Scanner(System.in) que en palabras
comunes est diciendo que el valor de teclado es lo
que System.in tenga. sea, cuando un usuario presiona una tecla, la
computadora convierte esta informacin en bytes. Estos bytes son
guardados en el objeto System.in, y por ultimo son asignados al variable
teclado. Despus del smbolo = vemos la palabra clave new lo cual crea
un nuevo objeto en la memoria, el tipo de objeto que creara
es Scanner(System.in), bsicamente est reservando memoria en la
computadora para que se pueda guardar la informacin de System.in.

A continuacin el siguiente ejemplo para dar ms claridad:


Int edad;
Scanner teclado = new Scanner(System.in);
System.out.println(Que edad tienes);
edad = teclado.nextInt();

Veamos paso a paso que es lo que significa cada lnea:

Int edad
Estamos declarando una variable int llamada edad la cual va a
almacenar un nmero.

Scanner teclado = new Scanner(System.in);


Estamos declarando una variable Scanner, la cual va almacenar la
informacin que el usuario introduce.

System.out.println(Cul es tu edad);
Estamos usando el mtodo println para preguntar al usuario por su
edad.

edad = teclado.nextInt();
Estamos usando la variable teclado para obtener la informacin del
usuario, luego convertimos los bytes en int con el mtodo nextInt, y por
ultimo estamos pasando el valor int a la variable edad.

Existen varios mtodos de la clase Scanner para convertir bytes en


valores que sean ms tiles. Siguiente voy a mostrar una lista de los
mtodos ms comunes de la clase Scanner para convertir bytes en otros
valores.

Mtodos:

nextByte
nextDouble

nextFloat
nextInt
nextLine
nextLong
next()

Encuentra y devuelve el siguiente token completo de este


escner.

next(Pattern pattern)

Devuelve el siguiente token si coincide con el patrn


especificado.

next(String pattern)

Devuelve el siguiente token si coincide con el patrn


construido a partir de la cadena especificada.

nextBigDecimal()

Analiza la siguiente muestra de la entrada como


BigDecimal.

nextBigInteger()

Analiza la siguiente muestra de la entrada como


BigInteger.

nextBigInteger(int radix)

Analiza la siguiente muestra de la entrada como


BigInteger.

nextBoolean()

Analiza la siguiente muestra de la entrada en un valor


boolean y devuelve ese valor.

nextByte()

Analiza la siguiente muestra de la entrada como un byte.

nextByte(int radix)

Analiza la siguiente muestra de la entrada como un byte.

nextDouble()

Analiza la siguiente muestra de la entrada como un


double.

nextFloat()

Analiza la siguiente muestra de la entrada como un float.

nextInt()

Analiza la siguiente muestra de la entrada como un int.

nextInt(int radix)

Analiza la siguiente muestra de la entrada como un int.

nextLine()

Avances este escner ms all de la lnea actual y devuelve


la entrada que fue omitido.

nextLong()

Analiza la siguiente muestra de la entrada como de long.

nextLong(int radix)

Analiza la siguiente muestra de la entrada como de long.

nextShort()

Analiza la siguiente muestra de la entrada como un Short.

nextShort(int radix)

Analiza la siguiente muestra de la entrada como un Short.

System.out.print("Ingrese un octal: ");


//se espera un nmero en base 8 es decir caracteres del 0 al 7 y
se convierte a decimal.
int numero = entrada.nextInt(8);
System.out.println("el nmero octal ingresado, en decimal es:
"+numero);
System.out.print("Ingrese un hexadecimal: ");
//se espera un nmero en base 16 es decir caracteres del 0 al 9
y/o A a la F y lo convierte a decimal.
numero = entrada.nextInt(16);
System.out.println("el nmero hexadecimal ingresado, en decimal es:
"+numero);
System.out.print("Ingrese un binario: ");
//se espera un nmero en base 2 es decir solo caracteres 0 y 1 y
lo convierte a decimal.
numero = entrada.nextInt(2);
System.out.println("el nmero binario ingresado, en decimal es:
"+numero);

Anda mungkin juga menyukai