java注册登录

在这里插入图片描述

package day01;

import java.util.Arrays;
import java.util.Objects;
import java.util.Scanner;

public class Zhucedenglu {
    public static void main(String[] args) {
//        设置两组数组分别存放用户名和密码
        String[] usernames = new String[3];
        String[] pswords = new String[3];
        usernames[0] = "lili";
        pswords[0] = "123123";

//        让用户选择要进行的操作
        boolean flag = false;
        do {


            System.out.println("1: 注册  2:登录  0:退出");
//        调用获取用户输入的方法
            Scanner sc = new Scanner(System.in);
//        将用户选择的选项保存在choose中
            int choose = sc.nextInt();
            //        如果用户输入1则进入注册的程序
            switch (choose) {
                case 1:
                    System.out.println("请输入您要注册的用户名:");

//            System.out.println(Arrays.toString(usernames1));
                    String yhm = sc.next();

                    System.out.println("请输入您要注册的密码:");

                    String mm = sc.next();

                    System.out.println("请再次确认您注册的密码");

                    String mm1 = sc.next();

//            遍历数组查看有没有重复的,如果有的话记住他的下标
                    int index = -1;
                    for (int i = 0; i < usernames.length; i++) {
                        if (Objects.equals(usernames[i], yhm)) {
                            index = i;
                            break;
                        }
                    }
//             index还等于-1说明用户名没有重复的,下一步判断他的长度是否符合标准
                    if (index == -1) {
//                    获取要注册的用户名的长度
                        int yhmlen = yhm.length();
//                    判断用户名长度是否大于5小于10
                        if (yhmlen >= 5 && yhmlen <= 10) {
//                        获取密码长度
                            int mmlen = mm.length();
//                        密码长度正确的话获取验证码
                            if (mmlen >= 5 && mmlen <= 10) {
                                if (mm.equals(mm1)) {
//                                生成一个随机的四位数数字 code  = Math.random() * (n - m) + m; &&  n=rand.nextInt(max-min+1)+min;
                                    int codes = (int) (Math.random() * 9000 + 1000);
                                    System.out.println("请输入一个4位数验证码" + codes);
                                    int code = sc.nextInt();
                                    if (code == codes) {
//                                    如果验证码输入正确将用户名和密码存进新数组
                                        boolean flag1 = false;
                                        boolean flag2 = false;
                                        for (int i = 0; i < usernames.length; i++) {
                                            if (usernames[i] == null) {
                                                usernames[i] = yhm;
                                                flag1 = true;
                                                break;
                                            }
                                        }
                                        for (int j = 0; j < pswords.length; j++) {
                                            if (pswords[j] == null) {
                                                pswords[j] = mm;
                                                flag2 = true;
                                                break;
                                            }
                                        }

                                        if (flag1 && flag2) {
                                            System.out.println("注册成功");
                                        } else {
                                            //         这边提前写一个新的数组存放用户注册成功后要存入的地方,因为java中数组的长度是不可改变的
                                            usernames = Arrays.copyOf(usernames, usernames.length + 1);

                                            pswords = Arrays.copyOf(pswords, pswords.length + 1);
                                            usernames[usernames.length - 1] = yhm;
                                            pswords[pswords.length - 1] = mm;
                                            System.out.println("注册成功");
                                        }

                                    } else {
                                        System.out.println("验证码错误,重新注册");
                                    }
                                } else {
                                    System.out.println("两次密码输入不一致");
                                }
                            } else {
                                System.out.println("您输入的密码不符合规范");
                            }
                        } else {
                            System.out.println("您输入的用户名长度有误,请重新注册");
                        }
//              否则说明已经有这个用户名了
                    } else {
                        System.out.println("您输入的用户名已经存在,请重新注册");
                    }
//                    输出一下注册好之后的数组 以便查看变化
                    System.out.println(Arrays.toString(usernames));
                    System.out.println(Arrays.toString(pswords));
                    flag = true;
                    break;
                case 2:
                    System.out.println("请输入您的用户名");
                    String yhm11 = sc.next();
                    System.out.println("请输入您的密码");
                    String mm11 = sc.next();
                    boolean flag3 = false;

                    int index1 = -1;
//                    判断输入的用户名是否存在数组里面 并且判断对应的密码是否正确
                    for (int i = 0; i < usernames.length; i++) {
                        if (Objects.equals(usernames[i], yhm11)) {
                            index1 = i;
                            if (Objects.equals(pswords[i], mm11)) {
                                flag3 = true;
                            }
                        }
                    }

                    if (index1 > -1 &&  flag3 ) {
                        int codes1 = (int) (Math.random() * 9000 + 1000);
                        System.out.println("请输入验证码" + codes1);
                        int code1 = sc.nextInt();
                        if (code1 == codes1) {
                            System.out.println("登录成功");
                        } else {
                            System.out.println("登录失败");
                        }
                    } else {
                        System.out.println("用户名或密码错误登录失败");
                    }
                    break;

                case 0:
                    System.out.println("程序已退出");
                    System.exit(0);
                    break;
                default:
                    System.out.println("您的输入有误,请重新输入");
                    break;
            }
        } while (true);
    }
}

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值