用户登陆判断

用户登陆

一般,会有判断名字和密码两个是否一一匹配的方法:

package com.xatu.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 判断并处理用户登陆问题。
 * 
 * @author Feng 2018年2月3日上午9:38:00
 */

public class JudgUser {
    static List<User> list = new ArrayList<User>();
    static Scanner input = new Scanner(System.in);

    public JudgUser() {// 初始化两个用户
        list.add(new User("松松", "123"));
        list.add(new User("璐璐", "456"));
    }

    /**
     * 判断方法:
     * 
     * @param name
     * @return
     */
    public boolean judgName(User user) {// 判断名字是否存在
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getName().equals(user.getName())) {// 名字是存在的时候,再判断密码
                if (list.get(i).getPassword().equals(user.getPassword())) {// 密码存在
                    System.out.println("该用户名和密码正确,可登陆。");
                    return true;
                } else {
                    System.out.println("用户名正确,密码错误!");
                    continue;
                }

            }
            continue;
        }
        return false;
    }

    /**
     * 程序入口方法。
     * 
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        JudgUser ju = new JudgUser();
        String name = null;
        String password = null;

        System.out.println("------------用户登陆界面------------");
        System.out.println("请输入你的登陆名:");
        name = input.next();
        System.out.println("请输入你的密码:");
        password = input.next();
        // 验证普通方法登陆!确实很麻烦!
        User u1 = new User(name, password);
        // if (ju.judgName(u1)) {// 传入用户(名字,密码),进行判断
        // System.out.println("欢迎,你已经登陆了!!");
        // } else {
        // System.out.println("请先注册!");
        // }

        /**
         * 异常处理:throw ,throws
         */
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).getName().equals(u1.getName())) {
                if (list.get(i).getPassword().equals(u1.getPassword())) {
                    System.out.println("登陆成功!");
                } else {
                    throw new NoSomething("密码错误!");
                }
            } else if (i != list.size() - 1) {
                continue;
            } else {
                throw new NoSomething("用户名不存在!");
            }

        }

    }
}

这是一个自定义异常。这个自定义异常是继承自Exception的,他其实也可以直接继承RuntimeException,因为他本身就是一个运行时异常,假如我们让他继承运行时异常时,可以不用throws在方法上声明。throws在这里表示“我不处理这个异常”。其实仔细想想的话,完全没有必要这样,直接判断,if语句的嵌套循环可以处理的,就像是我的第一种方法(已经被注释掉了。),这里是本人为了复习一下异常,特别拿出来用一下,担心忘了。哈哈。

package com.xatu.Test;

@SuppressWarnings("serial")
public class NoSomething extends Exception {
    /**
     * Feng2018年2月3日
     */
    public NoSomething(String message) {
        super(message);
    }
}

第一种方法已经被我注释掉了,第二种的逻辑看起来能好点。

一个简单的判断!!上边用throw throws 来抛出异常。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你家宝宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值