我该如何允许用户通过使用扫描仪功能无限次输入键盘来输入某些内容?

问题描述

在我的代码中,我能够使用扫描仪功能来提示用户键入文本,但是,我只能输入文本,因此用户只能键入一次。要再次键入,我将不得不关闭终端,然后再次打开它,如何才能使它可以无限次键入,这样我就不必每次都关闭并重新打开它才能再次键入? 对于上下文,这是我的代码,它是关于售票机的,它显示某些数据,例如人名,价格,总余额等。目前,我正在处理这些地方。这意味着我希望用户键入英格兰的任何城市,然后会出现一个价格。但是正如我所说,用户一次只能刺痛地键入一件事,而他们应该能够不受任何限制。

import java.util.Scanner;
import java.lang.String;

public class TicketMachine
{
    
    private int price;
    
    private int balance;
    
    private int total;
    /**
     * Create a machine that issues tickets of the given price.
     */
    public TicketMachine(int cost)
    {
        price = cost;
        balance = 0;
        total = 0;
    }

    /**
     * @Return The price of a ticket.
     */
    public int getPrice()
    {
        return price;
    }

    /**
     * Return The amount of money already inserted for the
     * next ticket.
     */
    public int getBalance()
    {
        return balance;
    }

    /**
     * Receive an amount of money from a customer.
     * Check that the amount is sensible.
     */
    public void insertMoney(int amount)
    {
        if(amount > 0) {
            balance = balance + amount;
        }
        else {
            System.out.println("Use a positive amount rather than: " +
                amount);
        }
    }

    /**
     * Print a ticket if enough money has been inserted,and
     * reduce the current balance by the ticket price. Print
     * an error message if more money is required.
     */
    public void printTicket()
    {
        if(balance >= price) {
            // Simulate the printing of a ticket.
            System.out.println("HERE IS YOUR TICKET");

            System.out.println("# Ticket");
            System.out.println("# " + price + " cents.");
            System.out.println("You have" + balance + "left");

            // Update the total collected with the price.
            total = total + price;
            // Reduce the balance by the price.
            balance = balance - price;
        }
        else {
            System.out.println("You must insert at least: " +
                (price - balance) + " more cents.");

        }
    }

    /**
     * Return the money in the balance.
     * The balance is cleared.
     */
    public int refundBalance()
    {
        int amountToRefund;
        amountToRefund = balance;
        balance = 0;
        return amountToRefund;
    }

    public static void main(String [] args)
    {
       
     
        Scanner myScanner = new Scanner(System.in);
        String answer = myScanner.nextLine();
      
        
        
        
        if( answer.equals("London") )
        {
            System.out.println("£15");
        }
        if( answer.equals("Manchester") )
        {
            System.out.println("£20");
        }

        if( answer.equals("Brighton") )
        {
            System.out.println("£25");
        }
        if( answer.equals("Cornwall") )
        {
            System.out.println("£30");
        }
        if( answer.equals("Crystal Palace") )
        {
            System.out.println("£35");
        }

        if( answer.equals("Chealsea") )
        {
            System.out.println("£40");
        }
        if( answer.equals("Birmingham") )
        {
            System.out.println("£45");
        }
        if( answer.equals("Liverpool") )
        {
            System.out.println("£50");
        }
        if( answer.equals("Bristol") )
        {
            System.out.println("£55");
        }
        if( answer.equals("Leister") )
        {
            System.out.println("£60");
        }
        if( answer.equals("Newcastle") )
        {
            System.out.println("£65");
        }
        if( answer.equals("Cambridge") )
        {
            System.out.println("£70");
        }
        if( answer.equals("Bradford") )
        {
            System.out.println("£75");
        }
        if( answer.equals("Leeds") )
        {
            System.out.println("£80");
        }
        if( answer.equals("Oxford") )
        {
            System.out.println("£85");
        }
        if( answer.equals("Nottingham") )
        {
            System.out.println("£90");
        }
        if( answer.equals("Peterborough") )
        {
            System.out.println("£95");
        }
        if( answer.equals("Sheffield") )
        {
            System.out.println("£100");
        }
   
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)