如何能够停止后面代码运行?

return执行之后,下面的语句不是都会忽略不执行的吗,为什么id重复之后,依然要输入姓名年龄住址,输入确实只返回数字1了,有没有什么方法能够在id重复时不用再输入姓名年龄住址
//1.添加学生 id需要唯一

public static int addstudent(Student a){
    Scanner sc = new Scanner(System.in);
    Student st = new Student();
    ArrayList<Student> list = new ArrayList<>();
    int temp = 0;                                      //判断是否添加成功
    System.out.println("请输入学生id");
    for (int i = 0; i < list.size(); i++) {
        if (sc.next().equals(list.get(i).getId()) ){
        return temp; 
        }
    }
    st.setId(sc.next());
    System.out.println("请输入学生姓名");
    st.setName(sc.next());
    System.out.println("请输入学生年龄");
    st.setAge(sc.nextInt());
    System.out.println("请输入学生住址");
    st.setAddress(sc.next());
    temp = 1;
    return temp;
}

有没有什么方法能够在id重复时不用再输入姓名年龄住址

阅读 1.8k
4 个回答

新手学习建议善用debug

// 这个参数是干啥的…没用就去了吧
public static int addstudent(Student a){
    Scanner sc = new Scanner(System.in);
    Student st = new Student();
    // 这个list貌似是用来保存数据并做去重的,但是你这个作用范围,每次都是空的,相当于没用
    ArrayList<Student> list = new ArrayList<>();
    int temp = 0;                                      //判断是否添加成功
    System.out.println("请输入学生id");
    // 换成 for(Student s : list) 吧,谢谢
    for (int i = 0; i < list.size(); i++) {
        // 因为 list 是空的,所以代码不会执行到这里,这里有另外一个问题
        // 就是 sc.next() 会一直往下读,
        // 应该把 id 读取出来然后判断
        // 另外去重的话 Map<String, Student> 更合理
        if (sc.next().equals(list.get(i).getId()) ){
        return temp; 
        }
    }
    st.setId(sc.next());
    System.out.println("请输入学生姓名");
    st.setName(sc.next());
    System.out.println("请输入学生年龄");
    st.setAge(sc.nextInt());
    System.out.println("请输入学生住址");
    st.setAddress(sc.next());
    temp = 1;
    return temp;
}
ArrayList<Student> list = new ArrayList<>();

你的这一行每次运行都是空的, for 循环都不执行......

新手上路,请多包涵
你的代码中ArrayList<Student> list是局部变量生命周期只在addstudent{}中,所以你每次调用addstudent,ArrayList<Student> list都是一个全新的且没有数据的

请参考如下信息:
地址:https://www.runoob.com/java/java-variable-types.html
image.png

每调用一次方法,就会创建一个新的集合,建议将集合写在方法外,传递进来调用,可以使用Map,如若ID存在直接拿到,随后跳出方法即可。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题