日期:2014-05-20  浏览次数:20995 次

简单实现注册用户名重名提示功能的代码问题
引用
while(true){
rename=false; //重命名回复默认值
System.out.print("请输入用户名:");
user=in.next();

//核对用户名是否重名,如果重名提示错误信息并且跳转开头
for(int i=0;i<9;i++){
int c=0;
if(user.equals(userinfo[c])){
rename=true;
break;
}
c++;
}
if(rename){
System.out.println("您的用户名已经被人注册,请选择其他用户名注册。");
continue;
}

System.out.print("请输入密码:");
password=in.next();
System.out.print("请再次输入密码:");
passwordagain=in.next();
if(!passwordagain.equals(password)){
System.out.println("密码不一致,请重新输入:");
continue;
}
System.out.println(a);
userinfo[a]=user;
System.out.println(userinfo[a]);
passwordinfo[b]=password;
a++;
b++;
System.out.println(a);
System.out.println(userinfo[a]);
System.out.println("退出请输入0");
int tuichu=in.nextInt();
if(tuichu==0){
break;
}
}



简单实现注册用户名重名提示功能的代码问题。
以上代码测试时发现问题,第一次注册用户名第二次输入会提示用户名重复,但是第二次注册的用户名第三次输入却无提示。
百思不得其解,求大师指点

------解决方案--------------------
Java code

    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        String[] userinfo = new String[]{"a","b"};
        while (true) {
            boolean rename = false; // 重命名回复默认值
            System.out.print("请输入用户名:");
            String user = in.next();

            int c = 0;//是这个c的问题吧?你每次都置c=0,c++就相当于没用了。放外面。
            for (int i = 0; i<9; i++) {
                if (user.equals(userinfo[c])) {
                    rename = true;
                    break;
                }
                c++;
            }
            if (rename){
                System.out.println("您的用户名已经被人注册,请选择其他用户名注册。");
                continue;
            }

            System.out.print("请输入密码:");
            String password = in.next();
            System.out.print("请再次输入密码:");
            String passwordagain = in.next();
            if (!passwordagain.equals(password)) {
                System.out.println("密码不一致,请重新输入:");
                continue;
            }
            
            System.out.println("退出请输入0");
            int tuichu = in.nextInt();
            if (tuichu == 0) {
                break;
            }
        }
    }