Autor Tema: Java System.in.read no funciona devuelve una entrada errónea de teclado  (Leído 5207 veces)

Refer

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 14
    • Ver Perfil
Tengo un problema con el resultado que me deberia de dar al ingresar un valor(edad) a la consola de NetBeans, a edad le tengo asignado un metodo de cual optendra un valor ingresado por el usuario en la consola. Pero al ingresar un valor como por ejemplo:
 
 edad= 20  me devuelve un valor de 50 en el enunciado
 System.out.println(" Su edad es: " + edad)

Código: [Seleccionar]
import java.io.IOException;

public class cero{
    public static void main(String args[])throws IOException
    {
        int edad= 0;
        System.out.print("Ingrese su edad: ");
        edad = System.in.read();
        System.out.println("Su edad es: " + edad);
       
    }
}

Por favor ayudenme, no entiendo donde esta el error  :(
« Última modificación: 24 de Junio 2015, 12:30 por Alex Rodríguez »

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Re:Problema Lógico al Ingresar un valor
« Respuesta #1 en: 22 de Junio 2015, 23:55 »
hola lo primero tenes que llamar a la clase con lo hace la clase como por ejemplo ComprobadorEdad o algo parecido.

y el codigo esta mal tenes que crear el teclado ejemplo
Código: [Seleccionar]
Scanner teclado = new Scanner(System.in);
y usando teclado creado le asigna a edad el valor ingresado pero tenes que  convertir porque la edad es de tipo entero y el teclado de String para convertir usa Integer.valueOf(); o algo asi o podes poner como String la edad

al final el codigo quedaria algo asi.
Código: [Seleccionar]
package cero;

import java.util.Scanner;

public class Cero {

   
    public static void main(String[] args) {
        int edad = 0;
        Scanner teclado = new Scanner(System.in);
        System.out.print("Ingrese su edad: ");

        edad = Integer.valueOf(teclado.nextLine());

        System.out.println("Su edad es: " + edad);
    }

}

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Re:Problema Lógico al Ingresar un valor
« Respuesta #2 en: 22 de Junio 2015, 23:57 »
Yo te recomendaría que sigas el curso de java desde cero así para aprender la estructura, lógica y la forma correcta de programar en java te va a ayudar mucho participando del foro para resolver los ejercicios y las dudas que tengas.

https://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188
« Última modificación: 24 de Junio 2015, 12:32 por Alex Rodríguez »

Refer

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 14
    • Ver Perfil
Re:Problema Lógico al Ingresar un valor
« Respuesta #3 en: 23 de Junio 2015, 08:50 »
Muchas gracias, ese metodo si funciona aun que sigo con la duda por que el metodo read produce ese resultado

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Re:Problema Lógico al Ingresar un valor
« Respuesta #4 en: 23 de Junio 2015, 18:55 »
Yo probé en netBeans también y no me compilo luego el código daba error no me apareció el resultado que me dijiste medio raro es si te apareció eso a vos.

alftalavera

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
El problema es que se lee un caracter únicamente, este ejemplo permite leer un numero mayor con read() pasandole un parámetro.

Código: [Seleccionar]
package cero;
import java.io.*;

public class Cero {
    public static void main(String args[]) {
        byte[] edad = new byte[6];
        int nBytes;
        System.out.print("Ingrese su edad: ");
        try {
            nBytes = System.in.read(edad);
            System.out.println("Su edad es: " + new String(edad));           
        } catch (IOException e) {
            System.out.println("Error: " + e.toString());
        }
    }
}
« Última modificación: 14 de Mayo 2017, 11:59 por Alex Rodríguez »

 

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".