簡體   English   中英

使用while循環重復此操作。 信用卡驗證

[英]getting this to repeat using a while loop. credit card validation

我的Java編程課程簡介幾乎已經完成了這個項目。 這是一個信用卡驗證程序。 我知道我快要完成了。 我需要做的就是詢問用戶是否要在第一個卡號之后輸入另一個卡號。 通常程序會說請輸入您的卡號。 用戶輸入卡號程序會確定簽證,萬事達卡等是否有效。 很簡單。但是我需要更改它以說

“請輸入卡號”

用戶輸入卡號

“您想輸入另一個卡號嗎?”

用戶輸入是或否

如果是,則該方法將重新運行並獲取另一個數字,然后繼續執行該操作,直到用戶拒絕為止。 用戶拒絕后,程序將確定卡是否為簽證卡,萬事達卡等,以及它們是否有效。

我的代碼發布在下面。 我很確定我需要一個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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM