Как сломать сканер на одни утверждения и запустить на другие - PullRequest
0 голосов
/ 19 июня 2020

Я СУПЕР новичок в программировании, делал несколько упражнений, и мне нужна ваша помощь. Я просто смоделировал банкомат в основном c способом. Мне нужна ваша помощь в части, которая гласит: "Нажмите 1" или "Нажмите 3". Поговорите с представителем. Мне нужно, чтобы сканер сломался после этого, если пользователь нажмет 1 или 3, как в настоящее время он установлен, так что если пользователь нажмет 2, он отправит их в оператор Withdraw, где вы можете завершить sh транзакцию, но сейчас она все еще выполняется для Нажимая 1 и 3, я не могу придумать, как это сломать или изменить. Заранее спасибо

package june;
import java.util.Scanner;

public class Bank {
    public static void main(String[] args) {

        Scanner scr = new Scanner(System.in);
        System.out.println("ENTER PIN");
        int pin = 9876;
        pin = scr.nextInt();

        if (pin == 9876) {
            System.out.println("Welcome To XYZ Bank! Choose your options for today!");
            System.out.println("To Deposit                                      Press 1");
            System.out.println("To Withdraw                                    Press 2");
            System.out.println("To Talk To a Representative            Press 3");
        } else {
            System.out.println("Wrong Pin") ;
        }
        {
            int enter1 = 1;
                    enter1=scr.nextInt();

            if(enter1==1) {
                System.out.println("Deposit");
            }else if (enter1==2)
                    System.out.println("Enter Withdraw Amount");
            else if(enter1==3)
                System.out.println("Hello! My name is Kismat. How may I help you today?");
            else
                System.out.println("Error. Please Enter Correct Code");

            int withdraw = scr.nextInt();
            int creditBalance=1000;

            if (withdraw<=1000){
                System.out.println("Cashing Out");
            }else if(withdraw<=1200){
                System.out.println("Insufficient Funds. Proceed and Overdraft Charges Will Appy - (For upto $200 above Credit Balance in Checking Account)");
            }else{
                System.out.println("Transaction Incomplete. Insufficient Funds");
            }
        }
    }
}

1 Ответ

0 голосов
/ 19 июня 2020

Думаю, это поможет вам реструктурировать и немного разбить код на методы, чтобы понять, что вы должны делать.

на высоком уровне это примерно то, что вам нужно:

    if(validatePin(getPin()) {
       printMenu();
       while(true) { //loop forever
          int input = getUserSelection();
           if(input == 1) {
              handleDeposit();
              break;
           }
           else if(input == 2) {
              handleWithdrawal();
              break;
           }
           else if(input == 3) {
              handleRepresentative();
              break;
           }
           else {
              handleInputError();
           }
    else {
        handlePinError();
    }

Если вы реализуете каждый метод, вы можете начать работать с логами c, и не будет так сложно понять, что вам нужно делать.

Также извините за форматирование, это было сложно набрать здесь ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...