提问人:Rohith 提问时间:11/6/2022 更新时间:11/6/2022 访问量:63
Do-while 循环不适用于使用 .equals 方法进行验证 (Java) [closed]
Do-while loop doesn't work for validating using a .equals method (Java) [closed]
问:
对于作业,我必须制作一个程序来查看用户输入是否包含三个字母中的任何一个:r、c 或 p。如果它是错误的,我必须继续要求用户重新输入,直到用户输入正确的答案。[]
我尝试使用 do while 循环进行验证,我自己测试了它,但不是只在满足条件时返回无效的错误消息,而是无论用户输入是什么,它都会返回它。do 语句甚至忽略了“有效输入”,无论如何都会打印无效消息。[]
答:
1赞
HKTE
11/6/2022
#1
你需要在这里使用while循环,而不是do..而。 一个做..while loop 至少运行一次其正文,然后检查条件 - 因此无论如何它都会至少显示一次错误消息。 相反,请使用 while 循环,它首先检查条件:
while (input does not contain r, c or p) {
// Show error, ask for new input
}
// Input is now valid
评论
0赞
Rohith
11/6/2022
哦,我试过了,但由于某种原因,无论输入如何,错误消息仍然显示。也许我需要更改有关客户代码声明和 System.out.print 语句的顺序。但感谢您的帮助!
3赞
Frederik Tobner
11/6/2022
#2
程序中的主要问题是为循环指定的条件。如果输入不是“c”或不是“r”或不是“p”,循环将继续。但是,如果您的输入是“p”,则输入将始终不是“c”或“r”。您应该用 not an 分隔条件。and
or
while (!customerCode.contentEquals("r") && !customerCode.contentEquals("c") && !customerCode.contentEquals("p"));
评论