Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: DRANXZ88 en 04 de Junio 2015, 21:55

Título: Java crear un arreglo de cadenas de texto directamente corchetes CU00669B
Publicado por: DRANXZ88 en 04 de Junio 2015, 21:55
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();
            }
        }

    }
}
Título: Re:Ejercicios Cu00669B de java
Publicado por: RaGa 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!");
    }

   
}
Título: Re:Ejercicios Cu00669B de java
Publicado por: DRANXZ88 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
Título: Re:Java crear un arreglo de cadenas de texto directamente corchetes CU00669B
Publicado por: OCi 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
Título: Re:Java crear un arreglo de cadenas de texto directamente corchetes CU00669B
Publicado por: Alex Rodríguez 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