entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

logica de do-while en Java

Hola, una pregunta de novato: en esta parte de mi programa, ¿porque al escribir "quit" no se termina la ejecución del bloque?

    public void enroll() {
        // Get inside a loop, user hits Q to exit
        Scanner in = new Scanner(System.in);
        String course;
        System.out.println("Enter course to enroll (Q to quit): ");
        do {            
            course = in.nextLine();
            courses = courses + "\n" + course;
            tuitionBalance = tuitionBalance + costOfCourse;         
        } while (course != "q".toLowerCase());
        System.out.println("Enrolled in: " + courses);
        System.out.println("Tuition balance: " + tuitionBalance);
    }

Gracias anticipadas por cualquier ayuda

2 Respuestas

2votos

carlossevi Puntos63580

El bucle se repite mientras se cumpla la condición:

course != "q".toLowerCase()

Si escribes "quit", la condición que se comprueba es "quit" != "q", que se sigue cumpliendo y por lo tanto el bucle continua. El bucle solo terminará cuando escribas literalmente "q".

1voto

TheHomicide Puntos1110

Ya te lo ha explicado carlossevi. El código correcto sería:

public void enroll() {
        // Get inside a loop, user hits Q to exit
        Scanner in = new Scanner(System.in);
        String course;
        System.out.println("Enter course to enroll (Q to quit): ");
        do {            
            course = in.nextLine();
            courses = courses + "\n" + course;
            tuitionBalance = tuitionBalance + costOfCourse;         
        } while (course.toLowerCase() != "quit");
        System.out.println("Enrolled in: " + courses);
        System.out.println("Tuition balance: " + tuitionBalance);
    }

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta