0

El problema lo estoy teniendo aproximadamente en la linea 72, ya que cuando se introduce por teclado si, no funciona el if y va directamente al else.

Aca les dejo mi código:

package juegoDeAzar;

import java.util.Scanner;

public class Juego {

    //ENTRADA DE DATOS A MANO
    private static Scanner Lector = new Scanner(System.in);

    public static int leerEntero() { return Lector.nextInt(); }
    public static float leerFloat() { return Lector.nextFloat(); }
    public static char leerCaracter() { return Lector.nextLine().charAt(0); }
    public static String leerString() { return Lector.toString(); }
    public static double leerDouble() { return Lector.nextDouble(); }
    public static String leerCadena() { return Lector.nextLine(); }
    public static boolean leerBoolean() { return Lector.nextBoolean(); }
    //FIN ENTRADA DE DATOS A MANO


    public static void main(String[] args) {
        //DECLARACION DE VARIABLES
        int puerta[] = new int[4];
        puerta[0] = 1;
        puerta[1] = 2;
        puerta[2] = 3;
        int puertaOpcion1 = 0;
        int puertaOpcion2 = 1;
        int puertaOpcion3 = 2;
        String respuestaConcursante;
        String respuesta1 = "si";
        String respuesta2 = "no";
        String concursante;
        int puertaElegida;
        int premio;
        //FIN DE VARIBLES

        //PRINCIPO DIALOGOS 
        System.out.println("Hola muy buenas caballero/a. Bienvenido a nuestro programa. ¿Como se llama?");
        concursante = Juego.leerCadena();

        System.out.println("Bien, " + concursante + " tenemos 3 puertas a legir, 1 lleva un coche y las otras 2 no tienen nada. Elige una.");
        puertaElegida = Juego.leerEntero();

        if (puertaElegida == puerta[0]) {

            premio = (int) (Math.random() * 3);

            switch (premio) {
                case 0:
                    System.out.println("Estas suguro de tu decisión ¿No?");
                    respuestaConcursante = Juego.leerCadena();
                    System.out.println("Y si ahora te dijese que en la puerta 2 no hay nada... ¿Cambiarías de opción a la puerta 1?");
                    respuestaConcursante = Juego.leerCadena();

                    if (respuesta1 == respuestaConcursante) {
                        System.out.println("Lo sentimos mucho, pero la puerta no estaba en esa puerta :'(");
                    } else {
                        System.out.println("¡Enorabuena! Ha ganado usted un coche, le pasamos con realizaxión para cojerele los datos. ¡Muchas gracias por participar!");
                    }
                    break;
                case 1:
                    System.out.println("case 1");
                    break;
                case 2:
                    System.out.println("case 2");
                    break;
            }
        }
        if (puertaElegida == puerta[1]) {

        }
        if (puertaElegida == puerta[2]) {

        }
        //FINAL DIALOGOS
    }
}
UselesssCat
  • 3,127
  • 1
  • 18
  • 43

1 Answers1

0

Cuando comparas dos cadenas con el if trata de poner simpre cadena1.equals(cadena2), en tu caso sería algo como esto:

if(respuesta1.equals(respuestaConcursante)){

                                System.out.println("Lo sentimos mucho, pero la puerta no estaba en esa puerta :'(");

                            }else{

                                System.out.println("¡Enorabuena! Ha ganado usted un coche, le pasamos con realizaxión para cojerele los datos. ¡Muchas gracias por participar!");

                            }
5frags
  • 399
  • 4
  • 12