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上花了最后一小时,但我发现的一切都是使用整数.当它只是一个数字和一个操作数时,验证用户输入似乎很容易.但是我如何使用三种可能的字符串?!
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有值吗? ".它还可以防止潜在的错误,比如插入一个=而不是两个..