Bootstrap

Java模拟用户登录

要求:

(1) 用户名和密码正确,提示登录成功。

(2) 用户名或密码不正确,提示“用户名或密码错误”。

(3) 总共有 3 次登录机会,在 3 次内(不包含第一次)输入正确的用户名和密码回到(1)。如若,超过 3 次输入的用户名或密码有误,则提示登录失败无法再继续登录。。。 在登录时,需要比较用户输入的用户名密码与已知的用户名密码是否相同,本案例可以使用 Scanner 类以及 String 类的相关方法实现比较操作。

一、代码

import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;

public class Test1 {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<>();
		Scanner sc = new Scanner(System.in);
		// 加入初始用户
		map.put("1", "q123");
		map.put("2", "q1234");
		map.put("3", "q123");
		//
		String userName;	// 用于输入的用户名
		String userPassword; 	// 用于输入的密码
		int begin = 3;	// 控制输入次数
		boolean flag = true;	// 控制循环
		while(flag) {
			// 输入用户名和密码
			if(begin > 0 && begin <= 3) {
				System.out.print("请输入用户名: ");
				userName = sc.next();
				System.out.print("请输入密码: ");
				userPassword = sc.next();
			}else {
				System.out.println("登录失败无法再继续登录。。。");
				return;
			}
			// 
			int a = 0;  // a 变量与 b 变量都 == 1时表示用户名和密码都存在。
			int b = 0;
			int c = 1; // c==1时表示用户名不存在
			// // 遍历用户或密码是否正确
			Set<String> keySet = map.keySet();
			for (String item : keySet) {
				if (item.equals(userName)) {
					a = 1;
					c = 0; // c==0时,表示用户名存在
					String pws = map.get(item);
					if (userPassword.equals(pws)) {
						b = 1;
						System.out.println("登录成功!");
						flag = false;
					} 
				}
			}
			// 
			if(a != b || c == 1) {
				System.out.println("用户名或密码错误!!!");
				begin--;
			}
		}
	}

}

二、运行结果

 

 


如有帮助,点赞加关注!!!

;