for循环里的if语句是怎么用的

alltoyes 2018-06-29 09:39:31
hireUser是HireUser类的一个对象
hu是HireUser的对象数组
hireUser.getUserByName()是查找用户的方法
//根据客户姓名查询房源信息
public User getUserByName(String userName) {
for(int i=0;i<hu.length;i++)
{
if(hu[i].getUserName().equals(userName))
{
return hu[i];
}
}
return null;
}
我存进hu数组的用户输入正确的姓名,用下面代码查不了该用户

System.out.println("输入你要查询的姓名");
String userName=sc.next();
for(int i=0;i<hireUser.hu.length;i++) {
if(userName==hireUser.hu[i].getUserName()) {
System.out.println(hireUser.getUserByName(userName).toString());
}
else {
System.out.println("没有此用户");
}
}


要修改为
System.out.println("输入你要查询的姓名");
String userName=sc.next();
for(int i=0;i<hireUser.hu.length;i++) {
if(userName==hireUser.hu[i].getUserName()) {

}
else {
System.out.println("没有此用户");
}
System.out.println(hireUser.getUserByName(userName).toString());
}
这样,才查的出该用户,为什么,求大神指导
...全文
1749 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
alltoyes 2018-06-29
  • 打赏
  • 举报
回复
好勒,谢谢你的耐心回答,我明白了
stacksoverflow 2018-06-29
  • 打赏
  • 举报
回复
int a 是基本类型int
String a 是字符串类型
你那什么类型接的变量就是什么类型
只有基本类型可以用两个等号比较
alltoyes 2018-06-29
  • 打赏
  • 举报
回复
我举个例子
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
if(a==1){}
else if(a==2){}
这个1和2不是字符串来的吗
为什么这个1或者2不是地址也可以用等号来执行
stacksoverflow 2018-06-29
  • 打赏
  • 举报
回复
if(userName==hireUser.hu[i].getUserName()) {
两个等号比较的是对象的地址,比较字符串要用equals方法

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧