简体   繁体   English

如何让我的代码循环回到 Java 的开头?

[英]How do I make my code loop back to the beginning in Java?

I've read that I would need to put "continue" after an "if" statement, but every I tried this with my if statement and it states that "continue cannot be used outside of a loop."我读过我需要在“if”语句之后加上“continue”,但每次我都用 if 语句尝试过这个,它指出“不能在循环之外使用 continue”。

Set it in the loop.将其设置在循环中。 EX:前任:

public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        while (true){
            System.out.print("Enter a password: The password must have at least eight characters, only letters and digits, and at least two digits. ");
            String s = input.nextLine();
            if (thepassword(s)) {
                System.out.println("Valid Password");
                break;
            } else {
                System.out.println("Invalid Password");
            }
        }
    }

See more: Java Break and Continute查看更多: Java 中断并继续

Use an outer infinite loop with a lable, then break the loop using break loop_lable .使用带有标签的外部无限循环,然后使用break loop_lable打破循环。 Check until a valid input is made.检查直到做出有效输入。

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter a password: The password must have at least eight characters, only letters and digits, and at least two digits. ");
        loop:for(;;)
        {
        String s = input.nextLine();
        if (thepassword(s)) 
        {
          
        System.out.println("Valid Password");
        break loop;
        } 
        else 
        {
        System.out.println("Invalid Password");
        continue loop;
        }
        }
        input.close();
    }
    public static boolean thepassword(String password) {
        boolean thepassword = true;
    if (password.length() < 8) {
        thepassword = false;
    } else { 
        int totaldigits = 0;
        for (int n = 0; n < password.length(); n++) {
            if (thedigit(password.charAt(n)) || theletter(password.charAt(n))) {
                if (thedigit(password.charAt(n))) {
            totaldigits++;
            }
            } else { 
            thepassword = false;
            break;
            }
        }
        if (totaldigits < 2) { 
            thepassword = false;
        }
    }
    return thepassword;
}
public static boolean theletter(char c) {
    return ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'));
}
public static boolean thedigit(char c) {
    return (c >= '0' && c <= '9');
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM