在使用名字查询时一直出错,查询已有的名字还是显示不存在,咋回事?

从风~ 2020-10-22 09:25:56

查询名字的方法:
public void testContainsValue(){
System.out.println("请输入要查询学生的姓名:");
String name=sc.next();
for(String stuID:student.keySet()) {
Student stu=student.get(stuID);
if(name.equals(stu.name)){
System.out.println("存在学生"+name);
break;
}
System.out.println("该学生不存在!");
break;
}
...全文
1340 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2020-10-23
  • 打赏
  • 举报
回复
你的System.out.println(“不存在”);放在for里是不对的,要放在for外面,否则,比如循环的第一条数据不满足if就打印不存在,并退出循环了,根本没去找第二条以后的数据 所以,for循环改成如下 boolean found = false; for(String stuId : student.keySet()) { Student stu = student.get(stuId); if(name.equals(stu.name)){ found = true; break; } } if(found) { //放在for循环外打印 System.out.println(“存在”); } else { System.out.println(“不存在”); }
qq_39936465 2020-10-23
  • 打赏
  • 举报
回复
引用 楼主 OYJJO 的回复:
查询名字的方法: public void testContainsValue(){ System.out.println("请输入要查询学生的姓名:"); String name=sc.next(); for(String stuID:student.keySet()) { Student stu=student.get(stuID); if(name.equals(stu.name)){ System.out.println("存在学生"+name); break; } System.out.println("该学生不存在!"); break; }

public void testContainsValue(){
		System.out.println("请输入要查询学生的姓名:");
		String name=sc.next();
		for(String stuID:student.keySet()) {
			Student stu=student.get(stuID);
			if(name.equals(stu.name)){
				System.out.println("存在学生"+name);
				return;
			}	
		}
		System.out.println("该学生不存在!");
	}
从风~ 2020-10-23
  • 打赏
  • 举报
回复
已经改过来了,我发现了谢谢
KeepSayingNo 2020-10-23
  • 打赏
  • 举报
回复
恭喜楼主看出问题所在

58,454

社区成员

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

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