2015-07-03 2 views
2

Я почти закончил этот проект для моего вступления в класс программирования Java. Это программа проверки кредитной карты. Я знаю, что я очень близок к тому, чтобы быть готовым. Все, что мне нужно сделать, это спросить пользователя, хочет ли он ввести другой номер карты после первого. Обычно программа заявляет, пожалуйста, введите номер своей карточки пользовательский ввод номер карты Программа определяет, будет ли виза, mastercard и т. Д. Затем определять, действительны ли. Простой enough.but мне нужно, чтобы изменить его, чтобы сказать, чтобы повторить это с использованием цикла while. проверка кредитной карты

«пожалуйста, введите номер карты»

номер пользователя входов карты

«вы бы хотели ввести другой номер карты?»

пользователь вводит да или нет

Если это да то метод повторы и получает другое число, то продолжает делать так до тех пор, пока пользователь не говорит, что нет. После того, как пользователь говорит «нет», программа определяет, являются ли карты визой, mastercards и т. Д. ... и если они действительны.

Мой код опубликован ниже. Я уверен, что мне нужен цикл 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; 
    } 

ответ

0

Вы можете сделать что-то вроде этого:

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