Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Chopi en 16 de Febrero 2016, 17:29

Título: Uso If...else en lugar de Switch para comparar cadenas el if no funciona
Publicado por: Chopi en 16 de Febrero 2016, 17:29
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");
           
           
           
           
        }
Título: Re:Duda sobre el uso If...else en lugar de Switch
Publicado por: Draculinio en 16 de Febrero 2016, 18:35
Quizá algo como:

if (entradaTeclado2=="s") {


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

}else{

}

Título: Re:Duda sobre el uso If...else en lugar de Switch
Publicado por: Chopi 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)
Título: Re:Duda sobre el uso If...else en lugar de Switch
Publicado por: dai 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) }
Título: Re:Duda sobre el uso If...else en lugar de Switch
Publicado por: Jonathan Ramos 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");
     }
}
Título: Re:Duda sobre el uso If...else en lugar de Switch
Publicado por: Alex Rodríguez 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