【案例5-3】 模拟用户登录
【案例介绍】
1.任务描述
在使用一些APP时,通常都需要填写用户名和密码。用户名和密码输入都正确才会登录成功,否则会提示用户名或密码错误。
本例要求编写一个程序,模拟用户登录。程序要求如下:
- 用户名和密码正确,提示登录成功。
- 用户名或密码不正确,提示“用户名或密码错误”。
- 总共有3次登录机会,在3次内(包含三次)输入正确的用户名和密码后给出登录成功的相应提示。超过3次用户名或密码输入有误,则提示登录失败,无法再继续登录。。
在登录时,需要比较用户输入的用户名密码与已知的用户名密码是否相同,本案例可以使用Scanner类以及String类的相关方法实现比较操作。
2.运行结果
登录成功的运行结果如图5-3所示
图5-3 用户登录成功运行结果图
登录失败的运行结果如图5-4所示
图5-3 用户登录失败运行结果图
【案例思路】
(1) 分析任务描述可知,已知用户名密码,定义两个字符串表示即可。
(2) 键盘录入要登录的用户名密码。用Scanner实现。
(3) 拿键盘录入的用户名密码和已知的用户名密码进行比较,给出相应的提示,字符串内容比较用equles实现。
(4) 循环实现多次机会。这里次数明确,用for循环实现。并在登录成功的时候。用break结束循环。
【案例实现】
模拟用户登录的实现代码,如文件5-3所示。
文件5-3 example3.java
- package com.itheima;
- import java.util.Scanner;
- public class example {
- public static void main(String[] args) {
- //已知用户名密码,定义两个字符串表示即可。
- String username = "itheima";
- String password = "czbk";
- for (int i = 0; i < 3; i++) {
- // 键盘录入要登录的用户名密码。用Scanner实现
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入用户名:");
- String uname = sc.nextLine();
- System.out.println("请输入用户密码:");
- String pwd = sc.nextLine();
- //拿键盘录入的用户名密码和已知的用户名密码进行比较,给出相应的提示,字符
- 串内容比较用equles实现。
- if(uname.equals(username)&&pwd.equals(password)) {
- System.out.println("登录成功!");
- break;
- }else {
- if(2-i == 0) {
- System.out.println("你的账户被锁定了,请联系管理员!!");
- }else {
- //2,1,0
- System.out.println("登录失败,还有"+(2-i)+"次机会");
- }
- }
- }
- }
- }
在文件5-3中,第6行和第7行分别定义字符串表示已知的用户名与用户密码,第8行代码用for循环来控制用户名与密码输入错误的次数,第10~14行代码用Scanner类中的方法实现键盘录入用户名密码。第17~26行代码表示拿键盘输入的用户名与用户密码与已知的用户名与用户密码进行比较。其中比较字符串内容用equals()方法,如果内容相同,则用break跳出for循环。如果内容不相同,则提示登录失败以及还有几次机会。