学号出现重复 但是不被识别 依然收录

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("学号是这样滴?");
     }
    }

慕丝9287860
浏览 882回答 1
1回答

习惯受伤

有好几处逻辑错误,第一段: 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)
打开App,查看更多内容
随时随地看视频慕课网APP