首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

表达能力有限,把代码发上来解决办法

2012-01-15 
表达能力有限,把代码发上来 ScannerinputnewScanner(System.in)intchoose0StringisGoOnnulldo{Syste

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

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


帮楼主试了试,1楼为正解,不信你在请选择后输入y看看就知道了。
2楼提示得对,应该为"y".equals(...)。
[解决办法]
还有,default写错了
[解决办法]

探讨

lz注意查一下你的代码 while( "y ".equals(isGoOn));
这里的"y "应该是"y"你多写了一个空格,所以导致 输入y回车没有想要的效果
你把最后一行改成while( "y".equals(isGoOn));

[解决办法]
帮顶。方法前面已经说清楚了。
[解决办法]
搂主最好的还是自己单步调试下,你问的自己都会清楚。楼上各位说的对。
[解决办法]
Java code
import java.util.Scanner;public class XinTest {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner   input   =   new   Scanner(System.in);         int   choose;         String   isGoOn ,GoOn;         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;                         default :                                System.out.println( "请输入正确的数字 ");                                 break;                         }                 }else{                         GoOn=input.next();                        System.out.println( "请输入正确的数字 ");                 }                                               System.out.println( "是否继续操作(y/n) ");                                 isGoOn   =   input.next();                        }while( "y".equals(isGoOn) );     }} 

热点排行