请大家帮我看看为什么我的代码执行到此处会停下,必须要随意输入一个字符才能进行下去。

来源:2-9 JDBC实战---搭建视图层(下)

吴登广

2015-09-15 22:13

http://img.mukewang.com/55f8276800010d0b03460293.jpg

while(console.hasNext()){
			String in=console.next();
			if(OPERATION_EXIT.equals(in.toUpperCase())
					||OPERATION_EXIT.substring(0,1).equals(in.toUpperCase())){
				System.out.println("您已成功退出女神信息.");
				break;
			}else if(OPERATION_GET.equals(in.toUpperCase())
					||OPERATION_GET.substring(0,1).equals(in.toUpperCase())
					||OPERATION_GET.equals(prenious)){
				prenious=OPERATION_GET;
				if(step==1){
					System.out.println("请输入您要查询的女神[id]");
				}else if(step==2){
					try {
						Goddess g=action.get(Integer.valueOf(in));
						System.out.println(g.toString());
					}catch (Exception e) {
						e.printStackTrace();
						System.out.println("您输入的id有误请重新输入!");
						step=0;
					}
				}
				step++;


写回答 关注

3回答

  • wshyzx
    2016-09-16 01:37:14

    兄弟,这个问题解决了吗?我与你遇到相同问题了

  • potatofootball
    2016-01-01 21:21:39

    首先你的代码有点问题

    应该要在try里面加入 step = 0;

    在输出查询人的信息之后也要把step至为1

    然后你说的那个问题,你输入的那些文字,其实是问你进入哪个功能模块,但是因为OPERATION_GET.equals(prenious)时,就进入了你之前进入的get这个判断里面,所以显得貌似这个输入很没意义,其实也是代码不严谨的问题,如果在查询信息之后就把prenious制空就不会出现这个状况了

  • wangdonny
    2015-09-16 07:01:33

    id是不是声明为int,可以把Integer.valueOf(in)改成Integer.parseInt(in)看看

JDBC之 “ 对岸的女孩看过来”

一起领略JDBC的奥秘,为进一步学习集成框架打下良好的基础

99327 学习 · 856 问题

查看课程

相似问题