2016-05-08 3 views
0
import java.util.Scanner; 

public class ATMMachine { 
    // Declared global variables. 
    public static int IDattempts = 3, pinattempts = 3; 
    public static double balance; 
    public static String ID = "John Smith", pin = "1234"; 
    public static int freeze = 0; 

    public static void main(String[] args) { 
     IDProcedure(); 
    } 

    static Scanner input = new Scanner(System.in); 

    // ID Procedure 
    public static void IDProcedure() { 
     while (freeze == 0) { 

      System.out.print("Please enter your ID: "); 
      ID = input.nextLine(); 
      // Ignores case, so if typed in upper/lower , program still works. 
      if (ID.equalsIgnoreCase("john smith")) { 
       PINProcedure(); 
      } else { 
       IDattempts -= 1; 
       System.out.println("You have " + IDattempts + " more tries to enter your correct ID"); 
      } 
      if (IDattempts == 0) { 
       System.out.print("You are out of tries, you will be kicked out of the program."); 
       System.exit(0); 
      } 

     } 
    } 

    // PIMProcedure 
    public static void PINProcedure() { 
     while (freeze == 0) { 

      System.out.print("Please enter your PIN: "); 
      pin = input.nextLine(); 
      if (pin.equals("1234")) { 
       System.out.print("You're in!"); 
       // Here is where you make them see their balance, withdrawal 
      } else { 
       pinattempts -= 1; 
       System.out.println("You have " + pinattempts + " more tries to enter your correct PIN"); 
       System.exit(0); 
      } 
     } 
    } 
} 

Здравствуйте,ATM программа Machine, программа завершается, когда он не запрограммирован, чтобы сделать так

Так что я делаю программу, как банкомат, но все, что мне нужно объяснять прямо сейчас то, что у меня есть.

У меня это есть, когда кто-то открывает программу, им предлагается идентификатор (имя пользователя) и PIN-код (4-значный номер пароля).

Все работает отлично, если у вас закончились 3 попытки при запросе на ID, программа завершается.

Если у вас закончилось 1 попытку, когда его попросят ввести PIN, он заканчивается. Есть ли способ исправить это, я уверен, что это так, и мне нужна помощь сообщества! Заранее спасибо. И если вы обнаружите дальнейшие ошибки или ошибки начинающих, пожалуйста, сообщите мне, поскольку я новичок.

ответ

0

Познакомьтесь подробнее с вашим методом PINProcedure(). В IDProcedure(), у вас есть это:

if (IDattempts == 0) { 
      System.out.print("You are out of tries, you will be kicked out of the program."); 
      System.exit(0); 
     } 

PINProcedure() отсутствует этот условный оператор, поэтому он достигает System.exit(0) если неправильный PIN-код вводится независимо от того, остается еще много попыток. Вам просто нужно включить условное заявление здесь, как вы это делали в IDProcedure(), и все должно работать нормально.

+0

Спасибо, я почему-то не заметил этого. Я чувствую себя потерянным, когда у меня много повторяющегося кода. Я новичок, поэтому мне нужно работать над этим. Но да, спасибо, что помогли мне найти проблему. – ValiantChampion

+0

Добро пожаловать! :) –

Смежные вопросы