为什么扫描仪功能不适用于java循环中的第二次迭代

时间:2021-02-19 16:04:17

标签: java input

这是我的atm接口的全部代码

public class Agecheck extends Exception
{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    public Agecheck(String str)
    {
        super(str);
    }
    Agecheck()
    {
        
    }
   boolean check(int age) throws Agecheck
   {
       if(age<5)
       {
           throw new Agecheck("You are not eligible to have a bank account");
           
       }
       else 
           return true;
   }
   public boolean checkamount(double amount1) throws Agecheck
   {
       if(amount1<200)
       {
           throw new Agecheck("You must have a minimum balance of 200");
           
       }
       else 
           return true;
   }
}


public abstract class Bank
{
    static String cname;
    static int age;
    static String patname;
    static String parname;
    static int id;
    static int password;
    static double amount;
    static double fine;
    abstract void p(Bank k,int i,double amount);
    abstract void m(Bank k,int i,double amount);
}


import java.util.Scanner;
public class Bank1 extends Bank
{
    @SuppressWarnings("static-access")
    static void getdata(Bank k, int i)
    {
       try
       {
            Bank k1=k;
            Scanner input = new Scanner(System.in);
            System.out.println("enter your name");
            String cname1= input.next();
            cname = cname1;
            System.out.println("enter your age");
            int age1=input.nextInt();
            age = age1;
            Agecheck a = new Agecheck();
            if(a.check(age1))
            {
                System.out.println("enter your password");
                int password1= input.nextInt();
                password = password1;
                try
                {
                        System.out.println("enter your amount");
                        double  amount1  = input.nextDouble();
                        if(a.checkamount(amount1))
                        {
                                amount = amount1;
                                id = i;
                                Bank1  b1 = new Bank1();
                                if(age<18)
                                {
                                    b1.m(k1,i,amount);
                                }
                                else
                                {
                                    b1.p(k1,i,amount);
                                }
                               System.out.println("your name :" + k.cname);
                               System.out.println("your age :" + k.age);
                               System.out.println("your amount :" + k.amount);
                               System.out.println("your id :" + k.id);
                               System.out.println("your password :" + k.password);
                        }  
                        
                }
                catch(Exception e)
                {
                    e.printStackTrace();
                }
            }
            input.close();
       }
       catch(Agecheck e)
       {
           e.printStackTrace();
       }
       
    }
    

    @SuppressWarnings("static-access")
    void p(Bank k,int i,double amount) 
    {
      Scanner input = new Scanner(System.in);       
      System.out.println("enter your patner name"); 
      String patname1 = input.next();
      k.patname = patname1;
      System.out.println("your patner name :" + k.patname);
      input.close();
      return ;
    }
    

    @SuppressWarnings("static-access")
    void m(Bank k,int i,double amount)
    {
          Scanner input = new Scanner(System.in);       
          System.out.println("enter your parent name"); 
          String parname1 = input.next();
          k.parname = parname1;
          System.out.println("your parent name :" + k.parname);
          input.close();
          return ;
    }
    
}


import java.util.Scanner;

public class Customer extends Bank1
{
    @SuppressWarnings("static-access")
    void withdraw(Bank b, int idn)
    {
        Scanner input = new Scanner(System.in);
        System.out.println("enter the amount you want to withdraw");
        int am = input.nextInt();
        b.amount = b.amount-am;
        if(b.amount<0)
        {
            System.out.println("you have used over amount");
            System.out.println("you  will have a fine of 50 rs");
            b.fine = 50;
        }
        else
        {
            b.amount = b.amount-am;
            System.out.println("Thank you for using our bank");
            
        }
        input.close();
    }
    @SuppressWarnings("static-access")
    void balanceenq(Bank b, int idn)
    {
        double x = b.amount;
        System.out.println("your bank balance is "+ x);
    }
    @SuppressWarnings("static-access")
    void deposit(Bank b, int idn)
    {
        Scanner input = new Scanner(System.in);
        System.out.println("Enter the amount you want to deposit");
        double dep = input . nextDouble();
        b.amount = b.amount + dep;
        input.close();
        
    }
    @SuppressWarnings("static-access")
    void totaldetatils(Bank k , int idn)
    {
        System.out.println("your name is "+ k.cname);
        System.out.println("your age is  "+ k.age);
        System.out.println("your bank balance is "+ k.amount);
        System.out.println("your fine is  "+ k.fine);
        System.out.println("your id number is  "+ k.id);
    }
}



import java.util.Scanner;

public class View extends Bank1
{
    @SuppressWarnings("static-access")
    public static void main(String[] args) 
    {
        int ch;
        Scanner input = new Scanner(System.in);
        boolean a = true;
        Bank b[] = new Bank[50];
        while(a)
        {
                System.out.println("Welcome to our bank");
                System.out.println("1 to enroll in our bank");
                System.out.println("2 if you are existing customer");
                ch = input.nextInt();   
                int  i =0;
                switch(ch)
                {
                    case 1:
                        getdata(b[i],i);
                        i++;
                        break;
                    case 2:
                        
                        System.out.println("enter your id number");
                        int idn = input.nextInt();
                        System.out.println("enter your id password");
                        int passwd = input.nextInt();
                        if(b[idn].password!=passwd)
                        {   
                            System.out.println("enter password correctly");
                            break;
                  
                        }
                        else
                        {
                            System.out.println("1 to withdraw amount");
                            System.out.println("2 to balance enquire");
                            System.out.println("3 to deposit");
                            System.out.println("4 to know total details");
                            System.out.println("5 to quit");
                            Customer cus = new Customer();
                            int c = input.nextInt();                       
                            switch(c)
                            {
                                case 1:
                                    cus.withdraw(b[idn], idn );
                                    break;
                                case 2:
                                    cus.balanceenq(b[idn], idn );
                                    break;
                                case 3:
                                    cus.deposit(b[idn], idn );
                                    break;
                                case 4:
                                    cus.totaldetatils(b[idn], idn);
                                    break;
                                case 5:
                                    System.exit(0);
                                    a= false;
                                    break;        
                            } 
                        }
                 }
         } 
        input.close();
    }
}

这是我的全部代码。

我的代码包含五类 customer 、agecheck、bank、bank1、view。

视图类中的语句 ch = input.nextint() 不适用于无限 while 循环的第二次迭代。 我什至尝试过 input.hasnextint() 但没有用。 该怎么办 。任何人都可以请帮帮我。 长期以来,我一直试图检测这一点

0 个答案:

没有答案
相关问题