Autor Tema: Ayuda en mi codigo de JAVA (Condicionales y Bucles)  (Leído 2746 veces)

juan0754

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 6
    • Ver Perfil
Ayuda en mi codigo de JAVA (Condicionales y Bucles)
« en: 06 de Mayo 2018, 05:50 »
Hola amigos tengo un problema con el siguiente código.Creo que el error se da en el if no hace la comparación.(Si es así quisiera saber por que)
Entorno: Eclipse
Lenguaje P.: Java
Problema: Ingresa tu mes de nacimiento,y se te da como repuesta tu signo zodiacal al cual probablemente perteneces .
Código: [Seleccionar]
import java.util.*;
public class ejercicio1 {

public static void main(String[] args) {
Scanner S=new Scanner(System.in);
String a;
String []b ={"enero","Enero","febrero","Febrero"};
boolean num=true;
System.out.println("Ingresa el mes en que naciste:");
    a=S.nextLine();
   
    do{
for(int i=0;i<b.length;i++){
      if(a==b[i]){
      num=false;
    }
}
}while(num);   
   
switch(a){
case "Enero": System.out.println("Eres preobablemente de signo Capricornio o Acuario");
break;
case "enero": System.out.println("Eres preobablemente de signo Capricornio o Acuario");
break;
case "Febrero": System.out.println("Eres preobablemente de signo Capricornio o Acuario");
break;
case "febrero": System.out.println("Eres preobablemente de signo Capricornio o Acuario");
}
« Última modificación: 06 de Mayo 2018, 05:59 por juan0754 »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 989
    • Ver Perfil
Re:Ayuda en mi codigo de JAVA (Condicionales y Bucles)
« Respuesta #1 en: 06 de Mayo 2018, 21:52 »
¿Qué esperas conseguir con el código que hay en el
bucle do..while()?
No hace nada útil, ni en realidad necesitas que lo haga. Este bucle puedes ahorrartelo.
Y por consiguiente no necesitas tampoco el array de Strings, ni la variable booleana.

Solo necesitas usar el switch para comparar la cadena introducida por el usuario.

Otra cosa. Esta bien intentar que el programa acepte "Enero" y "enero", "Febrero" y "febrero"..... pero no es práctico poner las distintas formas posibles, porque además esas no son las únicas posibles..
¿que pasa si pone "ENERO"?
¿O si es un usuario tocanarices y le da por poner "eNero", "EnErO", etc...?

Es una locura intentar contemplar todas las posibles combinaciones, lo mejor es usar los métodos que nos ofrece la clase String de Java para transformar a minúscula todas las letras de la cadena que ha introducido el usuario, y luego comparar.

Si añades esto al código:
Citar
System.out.println("Ingresa el mes en que naciste:");
a=S.nextLine().toLowerCase();

Conseguirás que lo que teclee el usuario sea recogido en minúsculas, independientemente de como lo haya tecleado el usuario.

Así, en tu switch, solo necesitarás usar las palabras minúsculas para comparar
Citar
switch(a)
{
case "enero":
case "febrero":
case "marzo":
.....
.....
}

Si por algún motivo lo quisieras en mayúsculas, tienes este otro método:
Citar
System.out.println("Ingresa el mes en que naciste:");
a=S.nextLine().toUpperCase();

Y el swich debería ser este:
Citar
switch(a)
{
case "ENERO":
case "FEBRERO":
case "MARZO":
.....
.....
}
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

juan0754

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 6
    • Ver Perfil
Re:Ayuda en mi codigo de JAVA (Condicionales y Bucles)
« Respuesta #2 en: 10 de Mayo 2018, 03:35 »
Gracias amigo por pasarte a responder.. :) :)

 

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