Una pregunta sencilla y rápida en JAVA

Kr4n3oK

Como compruebo si una variable int o float están vacías?
He buscado por google, pero no encuentro nada referente a esto y me extraña, quizás no esté usando correctamente las palabras clave.

Saludos!

babri

comprueba sin estan null

Kr4n3oK

No me vale, me tira que un float no es comparable con un nulltype :S

CricK

int o float no son objetos en Java, siempre tienen un valor.

#5 Seguro que tu explicación también le viene bien

1 1 respuesta
Fosht

Los tipos de datos primitivos no pueden tener un valor Null si te refieres a eso con que esta vacío, lo que puedes hacer es un Integer(Objeto) y este si puede tener un Null.

Salu2!

EDIT: #4 No había visto tu mensaje ;)

1 2 respuestas
Kr4n3oK

#5 Pero por ejemplo, declaro esta variable int variable1;
Para saber si está vacía que debería hacer?, no me ha quedado muy claro.

#7 Me extrañó básicamente porque en un examen el maestro dijo que comprobásemos que las variables no estaban vacías y claro, no sabía si eso podría hacerse xdd
Con un String si puede hacer claro está pero con los demás tipos...

2 respuestas
babri

#6 es que no esta vacia XDDD

no se puede hacer int varible;

tienes que meterle un valor

2 respuestas
Fosht

#6 Lo que tienes que hacer es inicializar la variable --> int variable1 = 0;

Si necesitas que la variable este vacía, que no contenga ningún número, podrías hacer esto:

Integer variable1 = null;

EDIT: #7 Estoy en babia xDDDDDD

1 respuesta
Kr4n3oK

#8 A ver xDD, explico.
Resulta que dentro de un do..while meto una especie de menú donde recoger datos para posteriormente pasarlos al constructor de una clase.
Bien, como es obvio debo comprobar que no pasamos variables vacías, pues como algunas variables son de tipo numéricas no sé como comprobar que lleva datos.
#10 Hombre como poder se podrá supongo, pero es el precio de un producto xDDDD

3 respuestas
varuk

#9 ¿Los números que puedes meter tienen algún rango puede ser desde -infinito hasta +infinito (bueno, el rango que soporta el tipo, claro, ya me entiendes).

1 respuesta
dagavi

A ver, no tiene sentido lo que estás diciendo. Si yo hago:

float x;

Simplemente, algo que obviamente se puede hacer, eso ya tiene un espacio de memoria reservado y hay algo (la memoria no está vacia, tiene basura o cosas que has puesto tu y tienen un sentido, pero no existe "memoria vacía" )

¿Que valor tiene X? ¿Vacío? No, x tiene algo, tiene lo que haya en el espacio de memoria que hayas pillado (a no ser que el lenguaje haga algo para "inicializar" las variables, en plan reservo el espacio y le meto un 0, por ejemplo)

Cuanto tu haces:
int x;

Pillas un espacio en memoria para la variable, pongamos que la memoria tiene los siguientes valores y se escoge el que está en negrita:

[10] [20] [30] [40] [50]

¿Está X vacío? No, X tiene 40, es contenido de la memoria y como tal tiene algún valor.

Por lo tanto la variable SIEMPRE lleva datos, como tu dices. La única forma es que pases un puntero a esos tipos (que entonces si puedes decir: te paso un puntero a la dirección 0 o a otra posición), eso en java lo puedes hacer con los tipos Integer (objeto int) y Float (objeto float)

Fosht

#9 La cosa seria que en la condición del do while especifiques que no salga de ahí hasta que se ponga un número entre 1 y 5 por decir algo.

Por lo tanto si haces:

Scanner scan = new Scanner(System.in);
int variable1 = 0;
do {
variable1 = scan.nextInt();
} while (variable1 < 1 || variable1 > 5);

no deberia salir del menu hasta que no haya un valor en la variable.

Evidentemente tienes que gestionar la entrada del usuario por si acaso no entra un entero e intenta entrar otra cosa diferente y pasar el dato al constructor de la clase que decias.

Salu2!

varuk

#9 ¿Pues no puedes inicializarlas como -1 (no hay precios de productos negativos) y después comprobar que no sea -1, y si es -1 es que no se ha introducido nada?. Vamos, así se han hecho estas cosas de toda la vida xD.

int x = -1;

si x == -1 entonces vuelve a pedir el valor

Otra cosa es ya también que vea si mete algo que no es un número.

1 respuesta
Kr4n3oK

#13 Agree, yo creo que es la mejor forma y mas fácil xdddd

MTX_Anubis

todos los tipos primitivos numéricos en java se inicializan a 0 automaticamente

1
Sergeon

no creo. Te salta un error de compilación si haces:

int x;

System.out.println(x > 2);

//

o cualquier otra cosa del estilo.

En cuanto a #1, yo creo que no se puede comprobar si un tipo primitivo está inicializado o no.

MTX_Anubis

cierto, no sé por qué creía que se inicializaban a 0 y los booleanos a false xD

LOc0
spoiler

Salu2 ;)

3

Usuarios habituales

  • LOc0
  • MTX_Anubis
  • Sergeon
  • Kr4n3oK
  • varuk
  • Fosht
  • babri