如何防止代码在id重复后继续运行?
在代码中,return语句会立即结束方法的执行并返回指定值。因此,在return语句执行后,后面的代码将不再执行。
在提供的代码中,return语句位于if语句块内,用于判断输入的id是否与列表中的id重复。如果重复,则返回temp变量的值(在这种情况下为0),表示添加学生失败。
但是,您想要实现的是在id重复时停止输入姓名、年龄和住址。要达到此目的,可以使用以下方法:
- 在if语句块外定义一个布尔变量,例如isduplicate,并将其初始化为false。
- 在if语句块内,当检测到id重复时,将isduplicate设置为true。
- 在if语句块外,检查isduplicate变量的值。如果为true,则打印一条错误消息,例如id已存在,请重新输入。
- 如果isduplicate为false,则继续输入姓名、年龄和住址,并设置temp变量为1,表示添加学生成功。
修改后的代码示例:
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"); boolean isDuplicate = false; for (Student s : list) { if (sc.next().equals(s.getId()) ){ isDuplicate = true; } } if (isDuplicate) { System.out.println("id已存在,请重新输入"); } else { 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时检测到重复时,将不再继续输入姓名、年龄和住址。