baidu_30803597
2015-08-24 02:39
采纳率: 100%
浏览 1.5k
已采纳

新手求教。java next()

各位好,有个问题请教一下。代码:
public class hello{
public static void main(String[] args) {

Scanner input1=new Scanner(System.in);
label1:

while(true){

System.out.println("请选择查询方法:a.图书信息 b.图书序号");
String choose=input1.next();

if(choose == "a" ){
System.out.println("选择了a方法");

break label1 ;
}else if(choose == "b"){
System.out.println("选择了b方法");
break label1;
}else{
System.out.println("输入指令错误,请重新选择");
continue label1;
}
}
}
}
可是运行结果是这样的。。:
请选择查询方法:a.图书信息 c.图书序号
a
输入指令错误,请重新选择
请选择查询方法:a.图书信息 c.图书序号
我在if,else if和else中都设置了断点,debug的时候按F5或F6,程序都会自动跳到下一个条件判断中。为什么会这样呢????
感谢回答!

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • wpliang 2015-08-24 02:33
    已采纳

    字符串比较 不要用等号啊 用equal方法试试

    打赏 评论
  • baidu_30803597 2015-08-24 03:01

    感谢第一层回答。作了修改:
    if(choose .equals ( "a")==true ){
    System.out.println("选择了a方法");

    break label1 ;
    }else if(choose .equals ( "b")==true){
    System.out.println("选择了b方法");
    break label1;

            运行:请选择查询方法:a.图书信息   b.图书序号
    

    b
    选择了b方法

    打赏 评论
  • qq_24246967 2015-08-24 08:08

    用equals ,因为字符串的判断,只能用equals,有错误可debug

    打赏 评论
  • 睡觉不盖被 2015-08-26 09:55

    ==是引用比较 字符串内容比较实用equals

    打赏 评论

相关推荐 更多相似问题