黑马程序员技术交流社区

标题: 刚学完前五天,在用循环时出现的一点问题,求解答! [打印本页]

作者: wenle00    时间: 2016-4-28 22:20
标题: 刚学完前五天,在用循环时出现的一点问题,求解答!
这个方法中 无论怎么输入都显示 "输入错误,请重新输入姓名:"  
原因是if 每次判断都是false 为什么?

public static void method2 (){
                String a ="张三";
                Scanner sc = new Scanner(System.in);
                System.out.println("请用中文输入您的姓名: ");
               
                for (int i = 0 ;i < 100 ;i++ ) {
                        String x = sc.nextLine();
                        if (a == x) {
                                System.out.println("输入正确,请输入您的密码:");       
                                break;
                        }else{
                                System.out.println("输入错误,请重新输入姓名: ");
                                                       
                        }               
                }

作者: r3562939    时间: 2016-4-28 22:31
因为==是比较的地址值 你用a.equals(s)
作者: TCK8888    时间: 2016-4-28 22:40
"=="是用来进行数值比较的,你这里声明两个字符串,保存在两个不同空间中,地址值不一样,所以输出为false,如果要比较内容的话用x.equals(a)试试看
作者: 睡在枯枝上的猫    时间: 2016-4-28 22:58
还有Scanner类,需要导包
作者: yxpzzl    时间: 2016-4-28 23:33
内事不决问百度,外事不决问谷歌
作者: 董改名    时间: 2016-4-28 23:42
楼上正解




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2