Autor Tema: Uso If...else en lugar de Switch para comparar cadenas el if no funciona  (Leído 4303 veces)

Chopi

  • Sin experiencia
  • *
  • Mensajes: 8
    • Ver Perfil
Buenas tardes foreros, tengo una duda sobre si es posible realizar una consulta que se responde con un simple sí o no por teclado con una estructura de if...else ya que no he tenido éxito por ahora y sólo consigo resolver mi problema con un Switch. Les dejo un ejemplo y muchas gracias! 8)


Código: [Seleccionar]
System.out.println("¿Desea introducir los datos de otro cantante (s/n)?");
        Scanner entradaEscaner2 = new Scanner(System.in);
        entradaTeclado2 = entradaEscaner2.nextLine();
        switch(entradaTeclado2){
            case "n" :  continuar = false;
                        break;
           
            case "s" : continuar = true;
                       break;
                       
            default : System.out.println("Error");
           
           
           
           
        }
« Última modificación: 21 de Febrero 2016, 19:06 por Alex Rodríguez »

Draculinio

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Re:Duda sobre el uso If...else en lugar de Switch
« Respuesta #1 en: 16 de Febrero 2016, 18:35 »
Quizá algo como:

if (entradaTeclado2=="s") {


}else if (entradaTeclado2=="n"){

}else{

}


Chopi

  • Sin experiencia
  • *
  • Mensajes: 8
    • Ver Perfil
Re:Duda sobre el uso If...else en lugar de Switch
« Respuesta #2 en: 17 de Febrero 2016, 13:15 »
Entiendo a lo que te refieres, pero no me funciona como debería :'(:

Código: [Seleccionar]
if(entradaTeclado2 == "n"){
            continuar = false;
        }
        else if(entradaTeclado2 == "s"){
            continuar = true;
        }
        else{}

He probado también escribiendo unos System.out.println para saber en qué parte del if..else me encontraba y sin importar que entrada introduzca por teclado entra en el ultimo else. Sigo necesitando el switch, y eso lo encuentro muy extraño.
 8)

dai

  • Sin experiencia
  • *
  • Mensajes: 3
    • Ver Perfil
Re:Duda sobre el uso If...else en lugar de Switch
« Respuesta #3 en: 18 de Febrero 2016, 17:21 »
Hola ! tengo entendido que el Case se usa más bien para Analizar Enteros (Case:1 . Case:2, etc) y el If {}else se usa para analizar un poco más la logica. Por ejemplo, if (nro =3 || nombre ="carla") { System.out.println(xxxxx) }

Jonathan Ramos

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 15
    • Ver Perfil
Re:Duda sobre el uso If...else en lugar de Switch
« Respuesta #4 en: 19 de Febrero 2016, 02:29 »
Algo asi? Creo te faltaba poner el { despues del else

Código: [Seleccionar]
System.out.println("¿Desea introducir los datos de otro cantante (s/n)?");
Scanner entradaEscaner2 = new Scanner(System.in);
entradaTeclado2 = entradaEscaner2.nextLine();

if (entradaTeclado2 == "s"){
    continuar = true;
} else {
    if (entradaTeclado2 == "n"){
        continuar = false;
    } else {
    System.out.println("Error");
     }
}
« Última modificación: 19 de Febrero 2016, 02:32 por Jonathan Ramos »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Duda sobre el uso If...else en lugar de Switch
« Respuesta #5 en: 21 de Febrero 2016, 19:05 »
Hola

Aquí puede leerse una aclaración: https://www.aprenderaprogramar.com/foros/index.php?topic=3450.0

Las comparaciones de igualdad de cadenas de texto en Java no se realizan con el operador == debido a que las cadenas de texto son objetos. Todo esto se explica en el curso http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188, recomendamos realizar dicho curso para adquirir todo el conocimiento básico sobre Java

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