如何能够停止后面代码运行?
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个回答
test
2024-06-20
新手学习建议善用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;
}
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容