Java 使用while循环使其重复。信用卡验证

Java 使用while循环使其重复。信用卡验证,java,netbeans,Java,Netbeans,我的java编程入门课程的这个项目差不多完成了。这是一个信用卡验证程序。我知道我就快完蛋了。我所需要做的就是询问用户是否希望在第一个卡号之后输入另一个卡号。 通常程序会说请输入您的卡号 用户输入卡号 程序确定visa卡、万事达卡等是否。。。然后确定是否有效。 很简单,但我需要修改一下 “请输入卡号” 用户输入卡号 “是否要输入另一个卡号?” 用户输入是或否 如果是“是”,则该方法重新运行并获取另一个数字,然后继续执行该操作,直到用户说“否”。 用户说“否”后,程序将确定这些卡是否为visa卡、万

我的java编程入门课程的这个项目差不多完成了。这是一个信用卡验证程序。我知道我就快完蛋了。我所需要做的就是询问用户是否希望在第一个卡号之后输入另一个卡号。 通常程序会说请输入您的卡号 用户输入卡号 程序确定visa卡、万事达卡等是否。。。然后确定是否有效。 很简单,但我需要修改一下

“请输入卡号”

用户输入卡号

“是否要输入另一个卡号?”

用户输入是或否

如果是“是”,则该方法重新运行并获取另一个数字,然后继续执行该操作,直到用户说“否”。 用户说“否”后,程序将确定这些卡是否为visa卡、万事达卡等。。。如果它们是有效的

我的代码贴在下面。我很确定我需要一个while循环,但我不太确定如何设置它。下面的代码就是getcardnumber方法

TLDR; 在用户停止输入卡号之前,如何重复此操作

public static String getCardNumber() {
        String cardNumber;
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Please enter the credit card number: ");
        cardNumber = keyboard.nextLine();
        //remove spaces from cardNumber
        cardNumber = cardNumber.replace(" ", "");
        while (!isAllDigits(cardNumber)) {
            System.out.println("The credit card number must contain only the"
                    + " digits 0-9; please re-enter: ");
            cardNumber = keyboard.nextLine();
            //remove spaces from cardNumber
            cardNumber = cardNumber.replace(" ", "");
        }
        //a number containing only digits has been entered
        return cardNumber;
    }

您可以这样做:

public static void main(String[] args){
    boolean b = false;
    do {
        System.out.println("Number 2: ");
        Item2 item2 = new Item2();
        System.out.println("Please enter the credit card number: ");
        Scanner keyboard = new Scanner(System.in);
        System.out.println(checkNumber(keyboard.nextLine(), keyboard));

        System.out.println("Would you like to input another card number? 1=Yes; 2=No");
        int decision = Input.nextInt();

        if (decision == 1){
            b = false;
        }else if (decision == 2){
            b = true;
        }
    }while(b == false);
}

public static String checkNumber(String cardNumber, Scanner keyboard) {
    //remove spaces from cardNumber
    cardNumber = cardNumber.replace(" ", "");
    while (!isAllDigits(cardNumber)) {
        System.out.println("The credit card number must contain only the"
                + " digits 0-9; please re-enter: ");
        cardNumber = keyboard.nextLine();
        //remove spaces from cardNumber
        cardNumber = cardNumber.replace(" ", "");
    }
    //a number containing only digits has been entered
    return cardNumber;
}