Problemas con la gramatica

-._antonio_.-
12 de Diciembre del 2004
Hola, estoy haciendo un programa en Java con BlueJ.
En un determinado momento del codigo, tengo un if donde necesito comparar integers con >, <, &&, || pero al compilar me da follo en esta linea porque no puedo aplicar estos operadores con int.
he probado a cambiar el tipo de los archivos a short y byte
pero me sigue dando lo mismo.
¿como lo puedo solucinar? Gracias

Isma
12 de Diciembre del 2004
No sé si tu problema es que no puedes comparar Integer con Int, o Integer con Integer. Me parece que para el primer caso tendrás que comparar objetos de la misma clases. No se pueden comparar objetos de distintas clases. Y para el segundo caso, debes saber con puedes aplicar directamente operadores lógicos a objetos de la clase Integer (a los int, sí puedes). Para compararlos debes utilizar el método compareTo de la clase Integer. Mira en en la Api de Java para más información.

Un saludo

Lemony Snicket
12 de Diciembre del 2004
Los operadores cortocircuitados (&& y ||) únicamente pueden ser utilizados con primitivos boolean o con expresiones que proporcionen como resultado de su evaluación un boolean. Y los operadores de comparación pueden emplearse con primitivos numéricos y char. Parece que estás utilizando && y II con los enteros.

Por si te sirve te indico el orden de precedencia de los operadores en JAVA:
1) Operadores Unarios : ++,--.+,-,~,!
2) Operadores Aritméticos: *,/,%,+,-
3) Operadores de Desplazamiento: <<,>>,>>>
4) Operadores de Comparación: <,>,>=,<=,==,!=
5) Operadores BitWise: &,|,^
6) Operadores ShortCircuit : &&, ||
7) Operador Condicional : x=a?b:c;
8) Operador Asignación : x op= y -> x=x op y