一段java代码中的while不进入循环 是什么原因 100

代码太多只能发这两个方法上来,outTeacher中的while(it.hasNext());不进入循环怎么找也找不出问题publicstaticvoidmain(Str... 代码太多只能发这两个方法上来, outTeacher中的while(it.hasNext());不进入循环怎么找也找不出问题

public static void main(String[] args) {
OperationData od = new OperationData();
od.inMap();
od.Menu();
od.Method();
public void Method() {
OperationData od = new OperationData();
int i = sc.nextInt();
if (i == 1) { // 输入信息为1时 进入添加新教师信息程序
od.addMessage();
} else if (i == 2) {
System.out.println("输入需要删除教师信息的工号:");
Scanner sc = new Scanner(System.in);
String n = sc.nextLine();
od.outTeacher(n);
} else if (i == 3) {
} else if (i == 4) {
} else if (i == 0) {
System.exit(0);
} else {
System.out.println("请输入正确序号!!!");
}
}

public void outTeacher(String num) {
OperationData od = new OperationData();
Set entrySet = hm.entrySet();
Iterator it = entrySet.iterator();
while (it.hasNext()) {
Map.Entry me = (Entry) it.next();
String key = (String) me.getKey();
Teacher value = (Teacher) me.getValue();
if (value.getNum().equals( num)) {
hm.remove(key);
System.out
.println("删除教师信息成功!" + "\n" + "需要返回菜单请按1,退出程序请按0");
int x = sc.nextInt();
if (x == 1) {
od.Menu();
od.Method();
} else if (x == 0) {
System.exit(0);
} else {
System.out.println("信息输入错误,程序自动退出");
System.exit(0);
}
}
}
}
展开
 我来答
百度网友a087e54
2014-04-29 · 超过22用户采纳过TA的回答
知道答主
回答量:175
采纳率:0%
帮助的人:70.7万
展开全部
public void outTeacher(String num) {
System.out.println(num);
OperationData od = new OperationData();
Set entrySet = hm.entrySet(); --> 这个hm 是什么? 没有说明 或者直接debug 这个还是很好用的
System.out.println(entrySet);
Iterator it = entrySet.iterator();
while (it.hasNext()) {
..............
}
追问

hm是我上面建好的一个集合  就是不知道为什么it.hasNext();会为空

追答
outTeacher(String num)   你都不传参数过去 那能有值么

outTeacher(String num, Map hm)
幸福生活有肉吃
2014-04-29 · TA获得超过122个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:133万
展开全部
不进入循环就是循环条件不满足...就是it.hasNext()为false没有下一个值...

hm.entrySet();的hm是哪来的,确认这个hm有值么...
追问

hm是我创建的集合,我就是不知道为什么会没有下一个值 , 找了半天  我都觉得应该有下一个值啊  

追答
看你main执行顺序是给全局变量加入了值的...要不把泛型加上试试?
Map hm = new HashMap();
Iterator it = entrySet.iterator();

别用括号强转的,估计有问题...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunlei_1989
2014-04-29 · TA获得超过1534个赞
知道小有建树答主
回答量:470
采纳率:50%
帮助的人:177万
展开全部
不进入循环 不是说明你没值吗 hm.entrySet(); 这里难道不报错吗
追问
hm是我上面建的一个集合
追答
现在放心明了   就是hm没值,其他的没有问题。代码都没有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
土憨宝
2014-04-29 · TA获得超过368个赞
知道小有建树答主
回答量:203
采纳率:100%
帮助的人:212万
展开全部
你debug看下hm有值没有啊,没有值肯定就不循环啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一瞥不够
2014-04-29 · TA获得超过905个赞
知道小有建树答主
回答量:760
采纳率:71%
帮助的人:193万
展开全部
entrySet 会不会是空的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miner双子
2014-04-29
知道答主
回答量:4
采纳率:0%
帮助的人:3983
展开全部
说明你的it.hasNext()里面已经没有元素了。你调试下。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式