沉吟丹青 2019-09-28 16:13 采纳率: 70%
浏览 3493

求助:用Java编写存取款程序,报错 $Exception in thread "main" 和java.lang.IllegalStateException: Scanner closed

package piggybank;
import java.util.Scanner;
public class piggybank
{
public static void main(String[] args)
{

Scanner input = new Scanner(System.in);
System.out.println("Welcome to the Piggy Bank. Please enter starting balance: ");
double startingBalance = input.nextDouble();
System.out.println("Piggy Bank ATM");
System.out.printf("Balance :  %6.2f", startingBalance);
System.out.println();

while (true){

System.out.println();
System.out.println("OPTIONS");
System.out.println();
System.out.println("1.Deposit\n"+"2.Withdraw\n"+"3.Quit\n");
System.out.println();   
System.out.println("Choose one:");
int option = input.nextInt();
switch (option) {

    case 1:
        System.out.println("Enter deposit amount:\n" + "Piggy Bank ATM");
        double deposit = input.nextDouble();
        double depositBalance= startingBalance + deposit;
        System.out.printf(" Balance: $%6.2f ",depositBalance);
        System.out.println();
    break;
    case 2:
        System.out.println("Enter withdrawal amount:\n" + "Piggy Bank ATM");
        double withdraw = input.nextDouble();
        double withdrawBalance= startingBalance - withdraw;
        System.out.printf("Balance:$%8.2f ",withdrawBalance);
        System.out.println();   
    break;

    case 3:
        System.out.printf("Ending Balance: $%8.2f ", startingBalance);
    break;

    }     

    input.close();  
}

}
}

我想要反复执行存取款程序,但是就会显示出错
图片说明
求帮忙!
想要得到以下运行结果
图片说明
我的运行结果是这样的,没有办法进行第二次输入
图片说明
呜呜呜,初学什么都不会,求助

  • 写回答

1条回答

  • 毕小宝 博客专家认证 2019-09-28 16:23
    关注

    input.close(); 这句放在 while 循环中,所以只有第一次循环有用,后面的循环就会报该异常。
    解决办法:将这句放在 while 的外面。先定位 while 的结束符号 } ,在其外面加这句。

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器