首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

一个很简单却又很怪异的JAVA基础有关问题

2012-02-13 
一个很简单却又很怪异的JAVA基础问题问题:实现用户注册功能,用户输入账号、密码和确认密码,注册用户!要求:a

一个很简单却又很怪异的JAVA基础问题
问题:实现用户注册功能,用户输入账号、密码和确认密码,注册用户!
  要求:a.用户的帐号为邮箱形式,必须对邮箱进行验证
b.密码必须和确认密码一致
c.密码的长度必须是8-16位
  d.用户的帐号不能包涵china,中国,共产党这些敏感字符
e.用户输入非法要给用户合理的提示
这个功能我可以实现,但是在测试的时候第一次帐号输入错误,以后都输入正确的话,在注册成功以后还会要你输入密码。源代码我贴出来,各位高手大大帮我看看那里出现错误了

Java code
import java.util.Scanner;public class Zhuce {    Scanner input = new Scanner(System.in);    public void zhuce() {        System.out.println("请输入账号");        String s = input.next();        boolean b = false;        boolean c = false;        if (s.equals("china") || s.equals("中国") || s.equals("共产党")) {            System.out.println("您的账号无效");            System.out.println("是否继续 Y/N?");            String j = input.next();            if (j.equals("y")) {                zhuce();            } else {                System.out.println("您退出了注册");            }        } else {            if (s.indexOf('@') != -1 && s.indexOf('.') > s.indexOf('@')) {                b = true;            } else {                System.out.println("您的账号无效");                System.out.println("是否继续 Y/N?");                String i = input.next();                if (i.equals("y")) {                    zhuce();                } else {                    System.out.println("您退出了注册");                }            }        }        System.out.println("请输入密码");        String m = input.next();        System.out.println("请再次输入密码");        String n = input.next();        if (m.equals(n) && m.length() <= 16 && m.length() >= 8) {            c = true;        } else {            System.out.println("您输入的密码有错");            System.out.println("是否继续 Y/N?");            String k = input.next();            if (k.equals("y")) {                zhuce();            } else {                System.out.println("您退出了注册");            }        }        if (b && c) {            System.out.println("注册成功");        }    }        public static void main(String[] args) {        Zhuce z=new Zhuce();        z.zhuce();    }}


[解决办法]
当然了,因为你当用户输错时,再次调用了zhuche()方法,所以第二次执行的是第二个zhuche()方法,执行完第二个zhuche()后会回到第一个执行的地方,接着执行,所以会出现你说的情况

最简单的方法,你在每次调用zhuche()的后边加一个return语句


[解决办法]
zhuce();
return;

热点排行