[英]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.