输出拼接怎么理解啊这里


public class changangemoney {
    public static void main(String[] args) {
        boolean loop = true;
        String key = "";
        Scanner myScanner = new Scanner(System.in);

        Date date = null;
        SimpleDateFormat STR = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        double sumMoney = 0;
        double banlance = 0;
        double takeMoney = 0;
        String name = "";
        String detials = "----------零钱通明细------------";

        do {
            System.out.println("========我的零钱通明细 ========");
            System.out.println(" 1   零钱通明细 ");
            System.out.println(" 2   收益入账  ");
            System.out.println(" 3   消   费     ");

            System.out.println(" 4   退   出     ");
            System.out.println("请选择你要进行的步骤(1-4)");
            key = myScanner.next();
            switch (key) {
                case "1":
                    System.out.println(detials);
                    break;
                case "2":
                    System.out.println("收益入账");
                    //收入
                    sumMoney = myScanner.nextDouble();
                    banlance += sumMoney;
                    date = new Date();

                    detials += "收益入账:" +sumMoney+ "\t" + STR.format(date) + "\t" +"余额:"+banlance;
                    break;

                case "3":
                    System.out.println(" 消费 ");
                    takeMoney = myScanner.nextDouble();
                    banlance -= takeMoney;
                    name = myScanner.next();
                    break;
                case "4":
                    System.out.println(" 退出 ");
                    loop = false;
                    break;
                default:
                    System.out.println("你的输入有误");
            }


        } while (loop);


    }
}


不懂问什么输入1后系统输出details的内容以后 还会输出下面拼接的内容,这里面没有让拼接输出的语句啊

代码是没有问题的。通过do while循环模拟了一种类似记账终端的操作界面。
首先是打印菜单。然后等待用户输入菜单编号。用户输入菜单编号后,打印不同的内容(模拟进行不同的处理),然后再打印一次菜单,等待下一次输入。