A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

这个方法中 无论怎么输入都显示 "输入错误,请重新输入姓名:"  
原因是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("输入错误,请重新输入姓名: ");
                                                       
                        }               
                }

5 个回复

倒序浏览
r3562939 来自手机 初级黑马 2016-4-28 22:31:18
沙发
因为==是比较的地址值 你用a.equals(s)
回复 使用道具 举报
"=="是用来进行数值比较的,你这里声明两个字符串,保存在两个不同空间中,地址值不一样,所以输出为false,如果要比较内容的话用x.equals(a)试试看
回复 使用道具 举报
还有Scanner类,需要导包
回复 使用道具 举报
内事不决问百度,外事不决问谷歌
回复 使用道具 举报
董改名 来自手机 高级黑马 2016-4-28 23:42:33
地板
楼上正解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马