为什么错误输入3次后就没有提示了,应该怎么改?
import java.util.*;
public class PswVerify{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入用户名");
String name = input.next();
System.out.println("请输入密码");
String pw = input.next();

for(int i = 3;i >=1 ;i--){

if(name.equals("1")& pw.equals("2")){
System.out.println("欢迎使用我行我素购物系统");
break;
}else if(i<3){
System.out.println("用户名和密码不匹配!\n你还有"+i+"次机会,请重新输入:\n");
System.out.println("请输入用户名");
name=input.next();
System.out.println("请输入密码");
pw=input.next();
continue;
}else{
System.out.println("你没有权限进入系统!");


}
}
}
}

解决方案 »

  1.   

    把System.out.println("你没有权限进入系统!");这句话放到循环外面去!就ok..把最后那个else去掉.!
      

  2.   

    你自己看看,,你的循环变量i是从3递减到1的对吧?  你那里else if(i<3)后面的语句,除了第⒈次不会执行以外都会执行的,else,,是对i<3这个条件取反,循环到后面几次你这个i值是根本不可能大于3的,,所以else里面的System.out.println("你没有权限进入系统!");这个语句是不会执行的
      

  3.   


    import java.util.*;public class Demo { public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("请输入用户名");
    String name = input.next();
    System.out.println("请输入密码");
    String pw = input.next(); for (int i = 3; i >= 0; i--) { if (name.equals("1") & pw.equals("2")) {
    System.out.println("欢迎使用我行我素购物系统");
    break;
    } else if (i < 3 && i > 0) {
    System.out.println("用户名和密码不匹配!\n你还有" + i + "次机会,请重新输入:\n");
    System.out.println("请输入用户名");
    name = input.next();
    System.out.println("请输入密码");
    pw = input.next();
    continue;
    } else {
    System.out.println("你没有权限进入系统!"); }
    } }
    }
    让循环多进行一次
    然后第二个条件改成 i < 3 && i > 0
      

  4.   

    我觉得6楼的有一点小问题。
    楼主应该是想实现的是:
      输入密码错误的话就提示"用户名和密码不匹配";输入错误超过4次的话就提示"你没有权限进入系统!"。public static void main(String[] args) {        Scanner input = new Scanner(System.in);
            System.out.println("请输入用户名");
            String name = input.next();
            System.out.println("请输入密码");
            String pw = input.next();        for (int i = 3; i >= 0; i--) {            if (name.equals("1") & pw.equals("2")) {
                    System.out.println("欢迎使用我行我素购物系统");
                    break;
                } else if (i <= 3 && i > 0) {
                    System.out.println("用户名和密码不匹配!\n你还有" + i + "次机会,请重新输入:\n");
                    System.out.println("请输入用户名");
                    name = input.next();
                    System.out.println("请输入密码");
                    pw = input.next();
                    continue;
                } else {
                    System.out.println("你没有权限进入系统!");            }
            }    }
      

  5.   

    晕,就是将else if判断条件的i < 3改成i <= 3。