Java do-while有多个字符串验证

Jas*_*oss 0 java string validation

试图创建一个简单的程序,有三个文本输入选项.如果用户键入三者中的一个,则程序继续.如果用户键入其他内容,程序将循环返回并再次请求输入,直到给出正确的响应.使用下拉列表或其他方法将不起作用,因为这是一项任务.

 System.out.print("Enter one of the following: cheese, water, or burger: ");
        userMedium = user_input.nextLine( );  // store user input as a string
        mediumConvert = userMedium.toLowerCase();

        boolean verifyName;
        if (mediumConvert.equals("cheese") || mediumConvert.equals("water") || mediumConvert.equals("burger")){
            verifyName = false;
        } else {
            verifyName = true;
        }

        while (verifyName = true){
            System.out.println("Please input a valid medium (cheese, water, or burger): ");
            userMedium = user_input.nextLine( );
            mediumConvert = userMedium.toLowerCase();
        }
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所设置的,但这只是不断重复循环OVER AND OVER.在本节之后,我想执行一个switch来处理三个正确响应中的每一个.

我在谷歌和YouTube上花了最后一小时,但我发现的一切都是使用整数.当它只是一个数字和一个操作数时,验证用户输入似乎很容易.但是我如何使用三种可能的字符串?!

Mar*_*oun 5

while (verifyName = true)
                  ?
Run Code Online (Sandbox Code Playgroud)

你是分配而不是比较.赋值的表达式返回赋值,因此循环等效于:

while (true)
Run Code Online (Sandbox Code Playgroud)

您应该将其更改为:

while (verifyName)
Run Code Online (Sandbox Code Playgroud)

基本上,你应该写while (verifyName == true),但它是多余的,因为它就像问" 这是真的verifyName有值吗? ".它还可以防止潜在的错误,比如插入一个=而不是两个..