试图让程序重复

Trying to get program to repeat

程序会检查输入的电子邮件地址是否包含 @ 和 .edu 如果不需要,则需要返回执行这些步骤,我想我可以使用一个 do-while,但我还没有一个可以工作,我如何将我的 if-else 语句嵌套在一个 do-while 中?谢谢!

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
    }
}

为了简化您的 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);

您可以简单地在您的逻辑之前添加类似 boolean correctEmail = false 的内容,并且在您的 if 语句的开头,您可以编写 while(!correctEmail) {

在密码创建结束时,您将 correctEmail 设置为 true,然后就可以开始了。

定义方法 isValid(String email, String password,... some more params) 并将所有检查逻辑放入该方法中。

写这样的东西

while (!isValid(the params)) {
   //ask all the credentials
}

非常简单。

bool trigger = (true/false);
do {
    if (...) {
        if (...){...}
        else if (...) {...}
        else {
            print out retry statement;
            trigger = false; 
        }
    }
}
while (trigger == true);

不要忘记末尾的分号。