日期:2014-05-20  浏览次数:20689 次

表达能力有限,把代码发上来

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) ");
 前面,用来接收前面输入的值就可以啦
------解决方案--------------------