小程序问题比较多求指导
//判断账户是否被锁定
public boolean ifCardLock(){
if(count==0){
return true;
}else{
return false;
}
}
//修改密码方法
public void modifyPsw(){
//如果没被锁定进入修改
while(!ifCardLock()){ // 这里while我本来是用if想用递归如果输入有错就再次调用这个方法但是问题比较多
int oldPsw =0;
System.out.println("请输入旧密码");
//异常处理掉不然输入类型不是int的会报错
try {
oldPsw=new Scanner(System.in).nextInt(); //重点问题::第一个问题来了如果这里用sc.nextInt()就会出现问题递归到这里根本不停直接跳过这句导致栈溢出不懂为什么,sc我定义过了
} catch (Exception e) {
count--; //没减一次就判断是否锁定了
ifCardLock();
System.out.println("*******密码不正确你还能输入"+count+"次********");
continue;
//modifyPsw(); //递归调用 会出现
}
if(oldPsw==password){//输入密码正确进入修改密码
boolean flag=true;
while(flag){//输入正确6位int新密码就flag则变为false跳出while
System.out.println("请输入新密码");
try {
password=sc.nextInt();
String s=password+""; //判断新密码是否为6位是否是之前的旧密码
if(s.length()!=6 ){
System.out.println("密码为6位数");
}else if(oldPsw==password){
System.out.println("输入密码为旧密码");
}
else{
flag=false;
}
} catch (Exception e) {
System.out.println("请输入正确格式");
}
}
//输入错误
}else{
count--;
ifCardLock();
System.out.println("*******密码不正确你还能输入"+count+"次********");
modifyPsw();
}
}
}