在下面的代码中原想让验证登陆3次失败就不能在验证了。
可是下面的循环却在每一次验证后都还有2次的机会,也就是提示我还有2次机会
这个应该就是for循环的错误了吧 ,,大侠们帮忙找找错误在哪里出现 ,,又应如何解决呢? f=true;
Scanner scanner = new Scanner(System.in);
ac: do{
System.out.print("\n"+"验证用户信息!"+"\n"+"输入用户名:");
sc5 = scanner.next();
System.out.print("输入用户密码:");
sc6 = scanner.next();
username = sc5;
password = sc6;
dd: for(int i=3;i>=1;i--){
if(i==0){
System.out.println("对不起你输入3次机会已过,登陆失败,请退出!");
break;
}
else{
if(user.getUsername().equals(username) && user.getPassword().equals(password)){
System.out.println("恭喜你登陆成功!");
f = false;
break ac;
}else{
System.out.println("用户名或密码错误!验证失败!你还有"+(i-1)+"次机会");
f = false;
i=i-1;
break dd; }
}
}
}while(f==false);
可是下面的循环却在每一次验证后都还有2次的机会,也就是提示我还有2次机会
这个应该就是for循环的错误了吧 ,,大侠们帮忙找找错误在哪里出现 ,,又应如何解决呢? f=true;
Scanner scanner = new Scanner(System.in);
ac: do{
System.out.print("\n"+"验证用户信息!"+"\n"+"输入用户名:");
sc5 = scanner.next();
System.out.print("输入用户密码:");
sc6 = scanner.next();
username = sc5;
password = sc6;
dd: for(int i=3;i>=1;i--){
if(i==0){
System.out.println("对不起你输入3次机会已过,登陆失败,请退出!");
break;
}
else{
if(user.getUsername().equals(username) && user.getPassword().equals(password)){
System.out.println("恭喜你登陆成功!");
f = false;
break ac;
}else{
System.out.println("用户名或密码错误!验证失败!你还有"+(i-1)+"次机会");
f = false;
i=i-1;
break dd; }
}
}
}while(f==false);
解决方案 »
- 请教下ECLIPSE导出JAVA程序
- Java位图操作相关问题
- DWR框架和spring整合出现的问题
- JDBC连接Mysql数据库出现NoClassDefFoundError错误
- JTable的问题-swing的bug?
- 从哪里可以下载sql server2005?
- 我的jdk1.4的环境变量的配置错在哪?(高分求助送100分)
- 学习java中遇到的若干问题解决后的疑惑?很重要也绝对对您有用噢!!!
- 没有main()应用程序照样运行!!!???我也不明白!!都是jb5.0惹得祸!!
- java 对树的操作,TreeSet,能否插入相同的数据,如果相同,如何解决
- 问个比较弱智的问题
- 输入流问题。。。
// 模拟用户名密码
private int seed = 0; public String getMsg(int times, boolean result) {
if (result == true && times <= 3) {
return "成功!";
}
else if (times > 3) {
return "超过3次验证失败!";
}
else {
return "失败!";
}
} public boolean check(String acc, String pwd) {
boolean isok = false;
// 校验逻辑
return isok;
} public String[] getAccPwd() {
String[] arrAccPwds = new String[] {
String.valueOf(this.seed), String.valueOf(this.seed)
};
this.seed++;
return arrAccPwds;
} public static void main(String[] args) {
boolean loginstate = false;
TestCheck check = new TestCheck();
for (int i = 0; loginstate;) {
String[] arrAccPwds = check.getAccPwd();
loginstate = check.check(arrAccPwds[0], arrAccPwds[1]);
check.getMsg(i, loginstate);
}
}}
// 模拟用户名密码
private int seed = 0; public String getMsg(int times, boolean result) {
if (result == true && times <= 3) {
return "成功!";
}
else if (times > 3) {
return "超过3次验证失败!";
}
else {
return "失败!";
}
} public boolean check(String acc, String pwd) {
boolean isok = false;
// 校验逻辑
return isok;
} public String[] getAccPwd() {
String[] arrAccPwds = new String[] {
String.valueOf(this.seed), String.valueOf(this.seed)
};
this.seed++;
return arrAccPwds;
} public static void main(String[] args) {
boolean loginstate = false;
TestCheck check = new TestCheck();
for (int i = 0; loginstate;) {
String[] arrAccPwds = check.getAccPwd();
loginstate = check.check(arrAccPwds[0], arrAccPwds[1]);
check.getMsg(i, loginstate);
if (loginstate) break;
}
}
}
// 模拟用户名密码
private int seed = 1; public String getMsg(int times, boolean result) {
if (result == true && times < 3) {
return "成功!";
}
else if (times >= 2) {
return "超过3次验证失败!";
}
else {
return "失败!你还有" + String.valueOf(2-times) + "次机会!";
}
} public boolean check(String acc, String pwd) {
boolean isok = false;
// 校验逻辑
return isok;
} public String[] getAccPwd() {
String[] arrAccPwds = new String[] {
String.valueOf(this.seed), String.valueOf(this.seed)
};
this.seed++;
return arrAccPwds;
} public static void main(String[] args) {
boolean loginstate = false;
TestCheck check = new TestCheck();
for (int i = 0; !loginstate;) {
String[] arrAccPwds = check.getAccPwd();
loginstate = check.check(arrAccPwds[0], arrAccPwds[1]);
String msg = check.getMsg(i++, loginstate);
System.out.println(msg);
if (loginstate) break;
}
}
}
boolean flag = false;
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
if(j>i){
flag = true;
break;
}
if(flag){
flag = false;
break;
}}
}
for(;;){
break lable;
}
}