Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: LuisM en 27 de Junio 2017, 16:47
-
Hola a todos, pego el codigo del ejercicio CU00669B del taller práctico de programación orientada a objetos con Java y BlueJ. Desde ya muchas gracias.
Saludos, Luis.
clase principal - método main
import java.util.*;
// Aquí el test con el método main
public class TestMeses {
public static void main (String [ ] args) {
EntradaDeTeclado entrada = new EntradaDeTeclado();
boolean acierto = false;
String respuesta = "";
String[ ] meses = new String [12];
meses [0] = "enero";
meses [1] = "febrero";
meses [2] = "marzo";
meses [3] = "abril";
meses [4] = "mayo";
meses [5] = "junio";
meses [6] = "julio";
meses [7] = "agosto";
meses [8] = "setiembre";
meses [9] = "octubre";
meses [10] = "noviembre";
meses [11] = "diciembre";
String mesSecreto = meses [9];
do {
System.out.println("Adivine el mes secreto. Introduzca el nombre del mes en minúsculas:");
entrada.pedirEntrada();
respuesta=entrada.getEntrada();
if (respuesta.equals(mesSecreto)) { System.out.println("Has acertado !");
acierto = true;}
}
while (acierto==false);
}
} //Cierre del main
Clase para la entrada por teclado del nombre del mes - ya utilizada en otros ejercicios
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
// Definimos una clase EntradaDeTeclado aprenderaprogramar.com
public class EntradaDeTeclado {
private String entradaTeclado; //Variable de instancia (campo) de la clase
private int entradaNumero;
public EntradaDeTeclado () { //Constructor
entradaTeclado="";
entradaNumero=0;
// pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
} //Cierre del constructor
public void pedirEntrada () { //Método de la clase
Scanner entradaEscaner = new Scanner (System.in);
entradaTeclado = entradaEscaner.nextLine ();
} //Cierre del método pedirEntrada
public void pedirNumero (){
Scanner entradaEscaner = new Scanner (System.in);
entradaNumero = entradaEscaner.nextInt ();
}
public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada
public int getNumero() {return entradaNumero;}
public String getPrimeraPalabra () {
for (int i=0; i < entradaTeclado.length() - 1; i++) {
if (entradaTeclado.substring (i, i+1).equals(" ") ) { //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
return entradaTeclado.substring(0, i+1); }
}
return entradaTeclado; //Caso de que no se detecte ningún espacio devolvemos lo que haya
} //Cierre del método getPrimeraPalabra
public int getLongitud () { //Método de la clase
return entradaTeclado.length();
} //Cierre del método getLongitud
} //Cierre de la clase
-
Está bien resuelto, pero puedes optimizar más tu código sin usar otra variable. Como ejemplo donde dice boolean acierto eso lo puedes omitir poniendo así en la condición while.
while (respuesta.equals(mesSecreto) == false);