Java无法执行ELSE ELSE IF链

时间:2014-09-30 02:49:59

标签: java if-statement

我无法使用的工作类为Actualizardatos1(我在最后粘贴代码)。我通过扫描仪功能获得输入,但从不使用Actualizardatos1方法,我在内部进入主菜单。

由于


package practica1;

public class Practica1 {
    static int  opcion2=0;

    public static void main(String[] args) {
        int opcion;

        do {
            Interfazusuario.printMenuPrincipal();
            opcion = IOutils.readNumber();
            executeAction(opcion);

        } while (opcion != 4);

    }

    public static void executeAction(int opcion) {

        if (opcion == 1) {
            System.out.println("Has escogido 1!!");
            Datosvivienda.setDireccionVivienda();
            Datosvivienda.setSolicitarPlantas();
            Datosvivienda.setSolicitarHabitaciones();
            Datosvivienda.setMetrosCuadrados();
            Datosvivienda.setTipoCalificacion();
            Datosvivienda.setResidencial();

***//UNTIL HERE ALL SEEMS TO WORK!!***

        } else if (opcion == 2) {    
            System.out.println("Has escogido 2!!");
            Interfazusuario.preguntaActualizar();
            opcion2=IOutils.readNumber();
            Actualizardatos1.compararOpcion2();  ***//HERE I CAN´T MAKE IT WORK***

***//tHIS PART TO THE END WORLK TOO.***    

        } else if (opcion == 3) {
            System.out.println("Has escogido 3!!");
            IOutils.calculoTamaño();
        }
    }
}

public static void compararOpcion2() {

        if (Practica1.opcion2 == '1') {
            actualizaDireccion();

        } else if (Practica1.opcion2 == '2') {
            actualizaPlantas();

        }else if (Practica1.opcion2 == '3') {
            actualizaHabitaciones();

          }else if (Practica1.opcion2 == '4') {
            actualizaMetros();

        } else if (Practica1.opcion2 == '5') {
            actualizaCalificacion();

        } else if (Practica1.opcion2 == '6') {
            actualizaResidencial();
        }

    }

    private static String actualizaDireccion() {
        System.out.print("Actualize la dirección de la vivienda:\n");
        Datosvivienda.direccion = IOutils.readLine();
        return Datosvivienda.direccion;
    }

    private static int actualizaPlantas() {
        System.out.print("Actualize el número de plantas de la vivienda:\n");
        Datosvivienda.plantas = IOutils.readNumber();
        return Datosvivienda.plantas;

    }

    private static float actualizaMetros() {
        System.out.print("Actualize los metros cuadrados de la vivienda:\n");
        Datosvivienda.metros = IOutils.readNumber();
        return Datosvivienda.metros;

    }

    private static String actualizaCalificacion() {
        System.out.print("Actualize la calificacion (A,B,C) de la vivienda:");
        Datosvivienda.calificacion = IOutils.readLine();

        while (Datosvivienda.calificacion.charAt(0) != 'a' && Datosvivienda.calificacion.charAt(0) != 'b' && Datosvivienda.calificacion.charAt(0) != 'c') {
            System.out.print("El dato introducido no valido.\n Introduzca la calificacion (A,B,C) de la vivienda:");
            Datosvivienda.calificacion = IOutils.readLine();
        }
        return Datosvivienda.calificacion;
    }

    private static String actualizaResidencial() {
        System.out.print("La vivienda es residencial? s/n:");
        Datosvivienda.residencial = IOutils.readLine();
        while (Datosvivienda.residencial.charAt(0) != 's' && Datosvivienda.residencial.charAt(0) != 'n') {
            System.out.print("Dato introducido no valido.\n Introduzca s para SI n para NO:");
            Datosvivienda.residencial = IOutils.readLine();

        }
        return Datosvivienda.residencial;
}

    private static int actualizaHabitaciones() {
        System.out.print("Actualize el numero de habitaciones:");
        Datosvivienda.habitaciones = IOutils.readNumber();
        return Datosvivienda.habitaciones;

    }
}

package practica1;

public final class Interfazusuario {

    public static void printMenuPrincipal() {
        System.out.print("MENU\n--------------\n"
                + "1-Solicitar datos de vivienda.\n"
                + "2-Corregir un dato.\n"
                + "3-calcular tamaño medio de la habitacion.\n"
                + "4-Salir.\n");

    }

    public static void preguntaActualizar() {

        System.out.print("Que datos quieres modificar?:\n"
                + "1.Actualizar direccion vivienda.\n "
                + "2.Actualizar número de plantas de la vivienda.\n"
                + "3.Actualizar número de habitaciones.\n"
                + "4.Actualizar número de metros cuadrados.\n"
                + "5.Actualizar calificación.\n "
                + "6.Actualizar si es residencial.\n");

    }

}

1 个答案:

答案 0 :(得分:0)

您要与char而不是int进行比较。在compararOpcion2方法中,更改所有读取的行

if (Practica1.opcion2 == '1')

if (Practica1.opcion2 == 1)