在进入开关案例之前,将执行默认案例

时间:2018-12-19 00:44:35

标签: java switch-statement

我运行程序,它到达while循环,并且在循环之前将输入设置为“”。当它进入while循环时,将显示“输入错误!”。然后要求输入input = sc.nextLine()。为什么?它甚至还没有输入switch-case语句。 预先谢谢你。

        Scanner sc = new Scanner(System.in);
        int size;
        size = sc.nextInt();
        String[] mem = new String[size];
        int[] mem_index = new int[size];
        String input = "";
        while(!input.equals("quit")) {
        input = sc.nextLine();

        switch(input) {
            case "Z": mem = memAlloc(mem, allocRequest);
                      memPrint(mem, mem_index);
                      allocRequest++;
                      break;
            case "O": System.out.print("Type memory data id: ");
                      delRequest = sc.nextInt();
                      mem = memDel(mem, mem_index, delRequest);
                      memPrint(mem, mem_index);
                      break;
            case "F": mem = memFrag(mem, mem_index);
                      memPrint(mem, mem_index);
                      break;
            case "quit":    break;
            default:  System.out.println("Wrong input!");
                      break;
        }
    }

1 个答案:

答案 0 :(得分:0)

您的scanner中可能还有其他内容。尝试添加以下行:

sc.next();

在进入while循环之前或循环的开始位置。