有没有会解决我这个bug啊,我输入错误的性别以后会正常回到输入学号的地方,但是我输入完了以后也就是走完一遍了,正常的话应该要结束这个方法了,但是它还会走到输入地址的地方,请问这个怎么解决
我希望的效果是走完一遍以后能直接在if那里退出当前这个方法,如果没有办法的话有什么其他办法解决吗?
/**
* 添加member
* @return member对象
*/
public static void add() {
try {
Member member = new Member();
print("请输入学号:");
Scanner studentNumberSc = new Scanner(System.in);
long studentNumber = studentNumberSc.nextLong();
print("请输入姓名:");
Scanner nameSc = new Scanner(System.in);
String name = nameSc.next();
print("请输入年龄:");
Scanner ageSc = new Scanner(System.in);
Integer age = ageSc.nextInt();
print("请输入性别(默认为男):");
Scanner sexSc = new Scanner(System.in);
String sex = sexSc.next();
Integer sexInt = 1;
if ("女".equals(sex)) {
sexInt = 0;
} else if ("男".equals(sex)) {
sexInt = 1;
} else {
errorMsg("性别必须是男或女,请重新输入");
add();
}
print("请输入家庭住址:");
Scanner addressSc = new Scanner(System.in);
String address = addressSc.next();
print("请输入手机号:");
Scanner phoneSc = new Scanner(System.in);
String phone = phoneSc.next();
if (!checkPhone(phone)) {
errorMsg("手机号格式不正确,正确格式应为(13617823851),请重新输入");
add();
} else {
if (longIsNotEmpty(studentNumber) || stringIsNotEmpty(name) || integerIsNotEmpty(age) || integerIsNotEmpty(sexInt) || stringIsNotEmpty(address) || stringIsNotEmpty(phone)) {
member.setStudentNumber(studentNumber);
member.setName(name);
member.setAge(age);
member.setSex(sexInt);
member.setPhone(phone);
member.setAddress(address);
Boolean memberFlag = addMember(member);
println(memberFlag ? "添加成功" : "添加失败");
}
} catch(Exception e) {
errorMsg("年龄和学号必须为数字,请重新输入:");
add();
}
}