程序检查输入的电子邮件地址是否包含@和.edu 如果它不需要回过头来,我想我可以使用do-while,但我还没有工作,我怎么会在一段时间内嵌入我的if-else语句?谢谢!
if (UserEmail.contains("@")) {
if (UserEmail.contains(".edu")){
System.out.print("Please create a password: ");
PassWord = kb.nextLine();
System.out.println(UserEmail.replaceAll("@\\S+?\\.edu\\b", ""));
System.out.print("Your password is " + PassWord);
} else {
System.out.print("email is not valid Please, try again.")
} else {
System.out.print("email is not valid Please, try again.");
// at this point it should repeat and ask for the email again
}
}
答案 0 :(得分:2)
定义方法isValid(String email, String password,... some more params)
并将所有检查逻辑放在方法中。
写下这样的东西
while (!isValid(the params)) {
//ask all the credentials
}
答案 1 :(得分:0)
为了简化您的if-else
代码,请考虑使用
if (UserEmail.contains("@") && UserEmail.contains(".edu")) {
.
.
}
这可以包含在do - while
do {
if (UserEmail.contains("@") && UserEmail.contains(".edu")) {
.
.
break;
}
System.out.print("email is not valid Please, try again.")
}
while (true);
答案 2 :(得分:0)
您只需在逻辑之前添加boolean correctEmail = false
之类的内容,并在if
语句的开头添加while(!correctEmail) {
在密码创建结束时,您将correctEmail
设置为true
,然后您就可以开始了。
答案 3 :(得分:-1)
非常直接。
bool trigger = (true/false);
do {
if (...) {
if (...){...}
else if (...) {...}
else {
print out retry statement;
trigger = false;
}
}
}
while (trigger == true);
最后不要忘记分号。