Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - richardpc2013

Páginas: [1]
1
Hola Toni_apr:

Gracias por la solución y los consejos.

Un saludo,

2
Hola toni_apr:

Con la respuesta que le has dado a la pregunta que hizo urdaneta88 de usar el método nextInt() he creado las siguientes clases:

Para la Clase entrada de Teclado:

Código: [Seleccionar]
import java.util.Scanner; //Importación de la clase Scanner desde la biblioteca Java
public class EntradaDeTeclado2 {  // Definimos la clase EntradaDeTeclado aprenderaprogramar.com
    private int entradaTeclado; //Variable de instancia (campo) del método
 
    //Constructor
    public EntradaDeTeclado2 ()  {
        entradaTeclado=0; } //Cierre del constructor
 
    public void pedirEntrada ()  {  //Método de la clase         
        Scanner entradaEscaner = new Scanner (System.in);
          int entradaTeclado = entradaEscaner.nextInt ();    // Dará la entrada como INT primitivo
           System.out.println ("valor devuelto desde la entrada del teclado :"  + entradaTeclado);
    } //Cierre del método pedirEntrada
 
    public int getEntrada () {
        System.out.println ("valor devuelto desde el get del teclado :"  + entradaTeclado);
        return entradaTeclado;
 } //Cierre del método getEntrada
} //Cierre de la clase

La Clase del Main :

Código: [Seleccionar]
public class AdivinaNumero {
    public static void main (String [ ] Args) {
        Integer tmpInteger = 0;
        EntradaDeTeclado2 entradaMain = new EntradaDeTeclado2();
            System.out.println ("Bienvenido al programa ADIVINA el NÜMERO !!!");
            System.out.println ("Intenta adivinar el número entre 1 y 100. ");
            SerieDeAleatorios2 serieDePrueba = new SerieDeAleatorios2 ( (int) 1);   // aquí paso la variable con el valor primitivo de la misma
            serieDePrueba.generarSerieDeAleatorios();
            int numAlea = serieDePrueba.getNumero() + 1;
            System.out.println ("El número aleatorio es :" + numAlea);
            System.out.print ("Teclea un número: ");                   
            entradaMain.pedirEntrada();
           tmpInteger = entradaMain.getEntrada() ;
           
           
             while ( tmpInteger != numAlea) {
   
                        if ( tmpInteger > numAlea ) {
                                System.out.println ("No has acertado: el número es menor. Prueba otra vez");
                            }
                                else {
                                System.out.println ("No has acertado: el número es mayor. Prueba otra vez");
                               }
                   
                    System.out.print ("Teclea un número: ");                   
                    entradaMain.pedirEntrada();
                     tmpInteger = entradaMain.getEntrada() ;
                     
             }        // Cierre del while

                    System.out.println ("BIEN !!!! has acertado el número " + numAlea);
                    System.out.println ("Gracias por utilizar el programa");
            } // Cierre del main
    }   //Cierre de la clase

Y la clase que genera el número aleatorio :

Código: [Seleccionar]
        //Esta clase define objetos que contienen tantos enteros aleatorios entre 1 y 100 como se definan
public class SerieDeAleatorios2 {
    //Campos de la clase
    private ArrayList<Integer> serieAleatoria;
 
    //Constructor
    public SerieDeAleatorios2 (int numeroItems) {
        serieAleatoria = new ArrayList<Integer> ();
        //Inicializamos el ArrayList lleno de ceros
        for (int i=0; i<numeroItems; i++) { serieAleatoria.add(0); }
        //System.out.println ("Serie inicializada. El número de elementos en la serie es: " + getNumeroItems() );
    } //Cierre del constructor
 
    public int getNumeroItems() { return serieAleatoria.size(); } //Cierre del método
 
    public void generarSerieDeAleatorios () {
        Random numAleatorio;
        numAleatorio = new Random ();
        for (int i=0; i < serieAleatoria.size(); i++) {
        serieAleatoria.set(i, numAleatorio.nextInt(100) );
         }
        //System.out.print ("Serie generada! ");
    } //Cierre del método
 
    public int getNumero () { //Método devuelve el único valor generado por Random
                return serieAleatoria.get(0);
    } //Cierre del método 

    public void mostrarSerie() {
        System.out.print ("Procedemos a mostrar la serie: ");
        for (Integer tmpObjeto :  serieAleatoria) {  //Uso de for each
           System.out.print ("   " + tmpObjeto.toString() );   } //Cierre del for extendido
           // System.out.print ("   " + tmpObjeto );   } //Cierre del for extendido           
    } //Cierre del método
} //Cierre de la clase

Al compilar no hay problema ninguno, pero cuando lo ejecuto, descubro que el get de la clase teclado me devuelve el valor 0, sin embargo cuando lo tecleo por el terminal veo que la variable entradaTeclado guarda el valor. ¿Que puede estar mal? o que proceso es erróneo?.  Con String no tengo estos fallos.

Un saludo.

Páginas: [1]

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