繁体   English   中英

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

[英]Default case is being executed before even entering switch-case

我运行该程序,它到达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;
        }
    }

scanner可能还有其他东西。 尝试添加以下行:

sc.next();

在进入while循环之前或就在循环开始之前。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM