for (int i = 0; i < a.length; i++) { System.out.println("输入你要增加学员的学号:"); int xh = input.nextInt(); boolean f = false; if (xh > 000 && xh < 100) { for (int j = 0; j < a.length; j++) { if (xh!=a[i].getId()) { f = true; System.out.println("hah "); break; } } if (f = true) { a[i].setId(xh); System.out.println("恭喜你,学员学号录入成功"); break; } else { a[i].setId(xh); System.out.println("抱歉,学号已存在"); break; } } else { System.out.println("学号是这样滴?"); } }
1 回答
已采纳
习惯受伤
TA贡献885条经验 获得超1144个赞
有好几处逻辑错误,第一段:
boolean f = false;
if (xh > 000 && xh < 100) {
for (int j = 0; j < a.length; j++) {
if (xh!=a[i].getId()) {
f = true;
System.out.println("hah ");
break;
}
}
这里你的本意是判断是否有重复对吧?那应该是这样的:
boolean f = false;
if (xh > 000 && xh < 100) {
for (int j = 0; j < a.length; j++) {
if (xh==a[i].getId()) { //这里,只有相等了才会标记为true。
f = true;
System.out.println("Exist! ");
break;
}
}
第二个错误:
if(f=true)
应该为:
if(f) 或者写作 if(f==true)
- 1 回答
- 0 关注
- 881 浏览
添加回答
举报
0/150
提交
取消