Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: rubens23 en 17 de Junio 2015, 14:20

Título: Java ejercicio resuelto con array o arreglo declaración y uso CU00669B
Publicado por: rubens23 en 17 de Junio 2015, 14:20
Arrays o arreglos Java. Ejemplos, de objetos y tipos primitivos; length. Tipos de colecciones

Citar
Crea una clase con el método main donde declares una variable de tipo array de Strings que contenga los doce meses del año, en minúsculas y declarados en una sola línea. A continuación declara una variable mesSecreto de tipo String, y hazla igual a un elemento del array (por ejemplo mesSecreto = mes[9]. El programa debe pedir al usuario que adivine el mes secreto y si acierta mostrar un mensaje y si no pedir que vuelva a intentar adivinar el mes secreto.

He hecho lo que pedía el ejercicio, y además he añadido para que pueda volver a "jugar" una vez mas.

CLASE CON METODO MAIN

Código: [Seleccionar]
package aprender;
import java.util.Scanner;
public class AdivinaMes {
private static Scanner resp;
public static void main (String []args){
String [] mes = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"};
String mesSecreto= mes [8];
resp = new Scanner(System.in);
String dato, dato2;
System.out.println("Adivine el mes secreto\nIntroduzca un mes para ver si lo adivina");
dato = resp.nextLine();
while (mes.length == 12){
if(dato.equalsIgnoreCase(mesSecreto)){
System.out.println("Has adivinado el mes. Era: "+mesSecreto+"\n¿Desea volver a jugar?(si/no)");
dato2 = resp.nextLine();
if(dato2.equalsIgnoreCase("si")){
mesSecreto = mes[4];
System.out.println("Adivine el mes secreto\nIntroduzca un mes para ver si lo adivina");
dato = resp.nextLine();
if (dato.equalsIgnoreCase(mesSecreto)){
System.out.println("Has adivinado el mes. Era: "+mesSecreto+"\nGracias por jugar");
break;
}

}else{
System.out.println("Finalizando programa...\nPrograma cerrado, gracias por jugar");
break;}
}else {
System.out.println("Lo siento, no lo ha adivinado\nVuelva a introducir el nombre de un mes");
dato=resp.nextLine();
}
}
}
}
Título: Re:Entrega nº69 del curso "Aprender programación Java desde cero"CU00669B
Publicado por: DRANXZ88 en 17 de Junio 2015, 17:29
Hola he estado probando tu código y no hace lo que pedía el ejercicio. Además las condiciones parecen no funcionar, nunca termina el bucle aunque aciertes el mes igual te pedía ingresar otro mes. Solo te debe pedir de nuevo el mes si el mes no es correcto ingresado por el usuario y terminar cuando acierta.
Título: Re:Entrega nº69 del curso "Aprender programación Java desde cero"CU00669B
Publicado por: DRANXZ88 en 17 de Junio 2015, 17:34
Hice alguna modificación en tu código para guiarte un poco y hacer comparación.
Código: [Seleccionar]
package aprender2;

import java.util.Scanner;

public class Aprender2 {

    private static Scanner resp;

    public static void main(String[] args) {
        String[] mes = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"};
        String mesSecreto = mes[8];
        resp = new Scanner(System.in);
        String dato;
        System.out.println("Adivine el mes secreto\nIntroduzca un mes para ver si lo adivina");
        dato = resp.nextLine();
        while (!dato.equals(mesSecreto)) {
            System.out.print("No ha acertado. Intente adivinarlo introduciendo otro mes: ");
            dato = resp.nextLine();
        }
        System.out.println("¡Ha acertado!");
       
    }

}

habrá otra forma de hacer ojala que te sirva.