试图让程序重复

时间:2015-03-06 07:15:20

标签: java loops do-while

程序检查输入的电子邮件地址是否包含@和.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
    }
}

4 个答案:

答案 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);

最后不要忘记分号。