Autor Tema: Java crear un arreglo de cadenas de texto directamente corchetes CU00669B  (Leído 3634 veces)

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Clase entrada del teclado
Código: [Seleccionar]
package ejercicioscu00669b;

import java.util.Scanner;

public class EntradaDeTeclado {

    private String entradaTeclado;
    Scanner sc = new Scanner(System.in);

    public EntradaDeTeclado() {
        entradaTeclado = "";
    }

    public String agregarMes() {
        entradaTeclado = sc.nextLine();
        return entradaTeclado;
    }
    public String getEntrada() {
        return entradaTeclado;
    }

}

clase principal main
Código: [Seleccionar]
package ejercicioscu00669b;

public class EjerciciosCu00669B {

    public static void main(String[] args) {
        String[] meses = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio",
            "agosto", "setiembre", "octubre", "noviembre", "diciembre"};
        String mes;
        String mesSecreto = meses[9];
        EntradaDeTeclado entrada = new EntradaDeTeclado();

        System.out.println("Adivine el mes secreto. Introduzca el nombre del mes en minúsculas:");
        mes = entrada.agregarMes();
        for (int i = 0; i < meses.length; i++) {
            if (mesSecreto.equals(mes)) {
                System.out.println("¡Ha acertado!");
                break;
            } else {
                System.out.println("No ha acertado. Intente adivinarlo introduciendo otro mes:");
                mes = entrada.agregarMes();
            }
        }

    }
}
« Última modificación: 07 de Junio 2015, 22:28 por Alex Rodríguez »

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:Ejercicios Cu00669B de java
« Respuesta #1 en: 06 de Junio 2015, 00:02 »
Hola!

He estado revisando tu código y funciona bien cumpliendo con la consigna del ejercicio.

Sin embargo me gustaría hacerte una observación:
En tu código has planteado un ciclo for con un condicional if else para resolverlo, escapando con un break cuando se dá con el mes elegido.
Creo que hubiera sido más acertado y elegante no utilizar un for con un if else en este caso, y utilizar más bien un ciclo while.
Por regla general se debe evitar el uso de escapes con break (salvo que sea necesario).

A continuación te planteo el mismo ejercicio resuleto con un while para que lo analices.

Código: [Seleccionar]
package ejercicioscu00669b;

public class EjerciciosCu00669B {

    public static void main(String[] args) {
        String[] meses = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio",
            "agosto", "setiembre", "octubre", "noviembre", "diciembre"};
        String mes;
        String mesSecreto = meses[9];
        EntradaDeTeclado entrada = new EntradaDeTeclado();

        System.out.println("Adivine el mes secreto. Introduzca el nombre del mes en minúsculas:");
        mes = entrada.agregarMes();
 
        while (!mes.equals(mesSecreto)){
            System.out.print("No ha acertado. Intente adivinarlo introduciendo otro mes: ");
            mes = entrada.agregarMes();
        }
        System.out.println("¡Ha acertado!");
    }

   
}

DRANXZ88

  • Avanzado
  • ****
  • Mensajes: 356
    • Ver Perfil
Re:Ejercicios Cu00669B de java
« Respuesta #2 en: 06 de Junio 2015, 01:38 »
Así luego yo quería hacer desde el principio plantee asi pero no sabia como era para poner distinto cuando usaba .equals por eso plantee de otra forma pero ahora ya veo como se hace distinto con .equals gracia

OCi

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Re:Java crear un arreglo de cadenas de texto directamente corchetes CU00669B
« Respuesta #3 en: 28 de Noviembre 2015, 17:06 »
Buenas, este es mi codigo:

Código: [Seleccionar]
import java.util.*;
public class ArraysN69 {
    public static void main (String [ ] args) {
        System.out.println ("Empezamos el programa mes secreto");
        String [ ] mesesYear = new String [ ] {"enero","febrero","marzo",
                                               "abril","mayo","junio",
                                               "julio","agosto","septiembre",
                                               "octubre","noviembre","diciembre"};                                             
        String mesSecreto = mesesYear[3];       
        while (true) {
            System.out.println ("Adivine el mes secreto. Introduzca el nombre del mes q=Salir");     
            EntradaDeTeclado entrada1 = new EntradaDeTeclado();
            System.out.println ("Gracias");
            if (entrada1.getEntrada().toLowerCase().equals("q")) {
                System.out.println ("Salida");
                break;
            }
            else if (entrada1.getEntrada().toLowerCase().equals(mesSecreto)) {                     
                System.out.println (" ¡Ha acertado!, Felicitaciones ");
                break;
            }
            else{   
                System.out.println ("No ha acertado. Intente adivinarlo introduciendo otro mes");
            }                   
        }
    } //Cierre del main
« Última modificación: 30 de Noviembre 2015, 13:27 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Java crear un arreglo de cadenas de texto directamente corchetes CU00669B
« Respuesta #4 en: 30 de Noviembre 2015, 13:29 »
Hola OCi cuando quieras pegar tu solución a un ejercicio abre mejor un nuevo tema, no respondas en un tema ya abierto

También ten en cuenta que para pegar código debes hacerlo como se indica en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0 para que quede bien

Sobre tu código, comentarte que usas while(true) y esto no es correcto, lee la explicación en https://www.aprenderaprogramar.com/foros/index.php?topic=2570.0

Saludos

 

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