一段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);
}
}
}
} 展开
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);
}
}
}
} 展开
展开全部
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()) {
..............
}
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()) {
..............
}
追答
outTeacher(String num) 你都不传参数过去 那能有值么
outTeacher(String num, Map hm)
展开全部
不进入循环 不是说明你没值吗 hm.entrySet(); 这里难道不报错吗
追问
hm是我上面建的一个集合
追答
现在放心明了 就是hm没值,其他的没有问题。代码都没有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你debug看下hm有值没有啊,没有值肯定就不循环啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
entrySet 会不会是空的。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说明你的it.hasNext()里面已经没有元素了。你调试下。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询