你的while循环写错啦,在判断的时候应该改为:“y”.equals(choose)。

解决方案 »

  1.   

    兄弟放到你main方法里面执行一把Scanner sc = new Scanner(System.in);
    System.out.println("MyShopping管理系统 > 购物结算\n");
    String choose = "y";
    while (true) {
    if(!choose.toUpperCase().equals("N")){
    System.out.println("*************************************************");
    System.out.println("请选择购买的商品编号:");
    System.out.println("1.T恤 2.网球鞋 3.网球拍");
    System.out.println("*************************************************");
    System.out.print("请输入商品编号:");
    int number = sc.nextInt();
    switch (number) {
    case 1:
    System.out.println("T恤 ¥245.0");
    break;
    case 2:
    System.out.println("网球鞋 ¥570.0");
    break;
    case 3:
    System.out.println("网球拍 ¥233.0");
    break;
    default:
    System.out.println("商品编号不合法!");
    break;
    }
    System.out.print("\n是否继续(y/n)");
    choose = sc.next();
    }else{
    System.out.print("程序结束!");
    System.exit(1);
    }
    }
      

  2.   

    while(choose =="y")改成while("y".equals(choose)),原因应该是sc.next();会返回一个新创建的字符串对象,而不是获取字符串缓冲池里的"y"。
    楼上的更好一些
      

  3.   

    如果用do...while应该可以吧!!!