表达能力有限,把代码发上来
Scanner input = new Scanner(System.in);
int choose = 0;
String isGoOn = null;
do{
System.out.println( "================================================ ");
System.out.println( "1.增加用户名 2.查询用户名 3.修改用户名 4.删除用户名 ");
System.out.println( "================================================ ");
System.out.println( "请选择 ");
if(input.hasNextInt()){
choose = input.nextInt();
switch(choose){
case 1:
System.out.println( "您选择了1 ");
break;
case 2:
System.out.println( "您选择了2 ");
break;
case 3:
System.out.println( "您选择了3 ");
break;
case 4:
System.out.println( "您选择了4 ");
break;
dafault:
System.out.println( "请输入正确的数字 ");
break;
}
}else{
System.out.println( "请输入正确的数字 ");
}
System.out.println( "是否继续操作(y/n) ");
isGoOn = input.next();
}while( "y ".equals(isGoOn));
以上代码执行过程中,如果在请 "选择后 "输入非int型的值就会提示 "请输入正确的数字 ",可是为什么在提示 "是否继续操作 "时无法从控制台输入呢?也就是isGoOn = input.next();不起作用了。但是如果我输入的时正确数字想循环时isGoOn = input.next();就起作用,可以在控制台输入。
------解决方案--------------------你上面的程序如果输入非int型的值,就直接被isGoOn获取啦,然后直接执行 "y ".equals(isGoOn);结束程序
------解决方案--------------------lz注意查一下你的代码 while( "y ".equals(isGoOn));
这里的"y "应该是"y"你多写了一个空格,所以导致 输入y回车没有想要的效果
你把最后一行改成while( "y".equals(isGoOn));
------解决方案--------------------再定义个String 变量 ,( 如GoOn)放在
GoOn=input.next();
System.out.println( "是否继续操作(y/n) ");
前面,用来接收前面输入的值就可以啦
------解决方案--------------------