Autor Tema: Ejercicio CU00670B. Conversión de tipos de datos en java (tipado)  (Leído 3700 veces)

fedegaray

  • Principiante
  • **
  • Mensajes: 81
    • Ver Perfil
Hola, tengo una pregunta. He finalizado el ejercicio de la lección CU00670B, pero tuve un problema. Si lo resolvía con la sintaxis que ofrece la lección, me arrojaba el error
Citar
Cannot find symbol - variable entradaConvertida

a causa de esta línea de código...

Código: [Seleccionar]
entradaUsuario = entradaUsuario.valueOf (entradaConvertida);
Intenté resolver este problema declarando (entes de la entrada del usuario) la variable de la siguiente manera
Citar
int entradaConvertida = 0;

pero al hacer esto, a pesar de que no arroja más el error, la resolución del problema es siempre "0". Por supuesto que me doy cuenta el por qué de este resultado, pero no logro ver cómo declarar la variable sin inicializarla con un valor que afectará el resultado. Investigando en la red descubrí que podía realizar la conversión de la siguiente manera

Código: [Seleccionar]
int entradaConvertida = Integer.valueOf (entradaUsuario);
y ahí sí todo salió bien, pero me preocupa no haberlo podido lograr con la sintaxis que propone la lección... ¿me he perdido de algo?

Esta es la resolución completa como me quedó...

Código: [Seleccionar]
import javax.swing.JOptionPane;
public class ejemplo1 {
    public static void main (String[] Args) {
        String entradaUsuario = JOptionPane.showInputDialog ( "Introduzca un número:" );
        int entradaConvertida = Integer.valueOf (entradaUsuario);
        System.out.println ("El doble del número introducido es: " + 2* entradaConvertida); 
    }
}

Dan_SB

  • Avanzado
  • ****
  • Mensajes: 273
  • *<DanielsCK>*
    • Ver Perfil
Re:Ejercicio CU00670B. Conversión de tipos de datos en java (tipado)
« Respuesta #1 en: 16 de Abril 2015, 18:28 »
Buenos dias fede!

Así propuso el curso resolverlo:

Citar
miInteger = miInteger.valueOf (miString)

miInteger quiere decir, tu Integer... osea... entradaConvertida debió declararse anteriormente como Integer. Si declaras entradaConvertida como int te saldra el error:



Recordemos que int y Integer son dos cosas distintas. int es un tipo primitivo mientras que Integer es un objeto. El valueOf() funciona solamente con clases llamados "Tipos envolventes", ellas son:

1. Integer
2. Double
3. Float
4. Long
5. Byte
6. Short
7. Float
8. Double
9. Character
10. Boolean

Estas clases pueden acceder al valueOf(), en este caso era usar un Integer, quiero que copies este código y lo veas:
Código: [Seleccionar]
public static void main (String[] Args) {
        String entradaUsuario = JOptionPane.showInputDialog ( "Introduzca un número:" );
        Integer entradaConvertida = 0;
        entradaConvertida = entradaConvertida.valueOf (entradaUsuario);
        System.out.println ("El doble del número introducido es: " + 2* entradaConvertida);
    }

veras que funciona como se esperaba! para ponerlo mas entendible, el valueOf solo trabaja con objetos. En cuanto a su solucion, no esta mal, se cumplio lo que se queria...

Espero haber aclarado las dudas,
Saludos!
« Última modificación: 16 de Abril 2015, 21:15 por Mario R. Rancel »
"Luchar por tus sueños y cumplirlos... eso es vivir.."

fedegaray

  • Principiante
  • **
  • Mensajes: 81
    • Ver Perfil
Re:Ejercicio CU00670B. Conversión de tipos de datos en java (tipado)
« Respuesta #2 en: 16 de Abril 2015, 19:19 »
Completísima y muy útil respuesta. Muchas gracias, has resuelto mi duda!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".