简体   繁体   中英

Continuously ask for a user input

I have two available options for a user to input, and what I am trying to accomplish is if the user does not enter either of the inputs the program will continuously ask them again until they enter a valid one. Here is the code right now

String userLIB = user_input.next();
    if (userLIB.contentEquals(UBC.acro)){
        printDetails(UBC);
    } else {
        if (userLIB.contentEquals(ORL.acro)){
            printDetails(ORL);
        } else {
            while (!userLIB.contentEquals(UBC.acro) || !userLIB.contentEquals(ORL.acro)){
            System.out.println("Invalid input");
            break;
            }
        }
    }

I have a break to keep the code from looping the "Invalid input" indefinetly but it just ends the program right now which isn't what I want to happen. Is there a way to make the program go back to the start of the if statement?

You're breaking your code when the Invalid input condition is met. Do as following,

String userLIB = "";
do {
    userLIB = user_input.next();
    if (userLIB.contentEquals(UBC.acro)){
        printDetails(UBC);
    } else if (userLIB.contentEquals(ORL.acro)) {
        printDetails(ORL);
    } else {
        System.out.println("Invalid input. Try again!");
    }
} while (!userLIB.contentEquals(UBC.acro) || !userLIB.contentEquals(ORL.acro));

This, tries to get the only 2 possible inputs and terminate the loop. Else will loop again and again, until the required input is provided.

I figured it out with the help of @Carcigenicate, I put a while loop outside of the whole code and then put a userLIB = user_input.next(); inside of the incorrect if statement. Also thanks to @Sridhar for giving an answer that also works

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM