2016-05-08 8 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); 
      } 
     } 
    } 
} 

Hallo,Geldautomat Programm beendet Programm, wenn nicht programmiert zu tun, so

So bin ich ein Programm machen, das wie eine ATM-Maschine ist, aber alles was ich brauche jetzt zu erklären, was ich habe.

Ich habe es so, wenn jemand das Programm öffnet, werden sie nach einer ID (Benutzername) und PIN (4-stellige Nummer Passwort) gefragt.

Alles funktioniert gut, wenn Sie 3 Versuche durchlaufen, wenn nach der ID gefragt wird, wird das Programm beendet.

Wenn Sie keine 1 mehr haben, versuchen Sie es, wenn Sie nach der PIN gefragt werden. Gibt es irgendeinen Weg dies zu beheben, ich bin mir sicher, dass es das ist, und ich brauche die Hilfe der Community! Danke im Voraus. Und wenn Sie weitere Fehler oder Anfängerfehler finden, benachrichtigen Sie mich bitte, da ich neu bin.

Antwort

0

Werfen Sie einen genaueren Blick auf Ihre Methode. In IDProcedure(), haben Sie dies:

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

PINProcedure() wird diese bedingte Anweisung fehlt, so ist es System.exit(0) erreicht, wenn die falsche PIN eingegeben wird, unabhängig davon, wie bleiben viele Versuche. Sie müssen einfach eine bedingte Anweisung hier einfügen, wie Sie es in IDProcedure() getan haben, und alles sollte gut funktionieren.

+0

Danke, das habe ich aus irgendeinem Grund nicht bemerkt. Ich fühle mich verloren, wenn ich viel Wiederholungscode habe. Ich bin neu, also muss ich daran arbeiten. Aber ja, danke, dass du mir geholfen hast, das Problem zu finden. – ValiantChampion

+0

Gern geschehen! :) –

Verwandte Themen