模拟用户登录-课后程序(JAVA基础案例教程-黑马程序员编著-第五章-课后作业)

news/2024/11/15 19:31:56/

【案例5-3】 模拟用户登录

【案例介绍】

1.任务描述

在使用一些APP时,通常都需要填写用户名和密码。用户名和密码输入都正确才会登录成功,否则会提示用户名或密码错误。

本例要求编写一个程序,模拟用户登录。程序要求如下:

  1. 用户名和密码正确,提示登录成功。
  2. 用户名或密码不正确,提示“用户名或密码错误”。
  3. 总共有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

  1. package com.itheima;
  2. import java.util.Scanner;
  3. public class example {
  4.     public static void main(String[] args) {
  5.         //已知用户名密码,定义两个字符串表示即可。
  6.         String username = "itheima";
  7.         String password = "czbk";
  8.         for (int i = 0; i < 3; i++) {
  9.         // 键盘录入要登录的用户名密码。用Scanner实现
  10.         Scanner sc = new Scanner(System.in);
  11.         System.out.println("请输入用户名:");
  12.         String uname = sc.nextLine();
  13.         System.out.println("请输入用户密码:");
  14.         String pwd = sc.nextLine();
  15.         //拿键盘录入的用户名密码和已知的用户名密码进行比较,给出相应的提示,字符
  16.             串内容比较用equles实现。
  17.         if(uname.equals(username)&&pwd.equals(password)) {
  18.            System.out.println("登录成功!");
  19.             break;
  20.         }else {
  21.            if(2-i == 0) {
  22.                System.out.println("你的账户被锁定了,请联系管理员!!");
  23.            }else {
  24.            //2,1,0
  25.           System.out.println("登录失败,还有"+(2-i)+"次机会");
  26.         }
  27.         }
  28.         }
  29.     }
  30. }

在文件5-3中,第6行和第7行分别定义字符串表示已知的用户名与用户密码,第8行代码用for循环来控制用户名与密码输入错误的次数,第10~14行代码用Scanner类中的方法实现键盘录入用户名密码。第17~26行代码表示拿键盘输入的用户名与用户密码与已知的用户名与用户密码进行比较。其中比较字符串内容用equals()方法,如果内容相同,则用break跳出for循环。如果内容不相同,则提示登录失败以及还有几次机会。


http://www.ppmy.cn/news/26692.html

相关文章

力扣mysql刷题记录

mysql刷题记录 刷题链接https://leetcode.cn/study-plan/sql/?progressjkih0qc mysql冲&#xff01;mysql刷题记录一. 1699. 两人之间的通话次数题解二、1251. 平均售价题解三. 1571. 仓库经理题解四.1445. 苹果和桔子解五.1193. 每月交易 I题解六.1633. 各赛事的用户注册率题…

如何使用Hugo Academic Theme构建自己的github主页

前期条件 自己已经注册好GitHub 搜索Hugo Academic Theme&#xff08;网址&#xff09; 进入后的网址为&#xff1a;https://academic-demo.netlify.app/ 点击Get Start 出现如下模板&#xff0c;选择一个喜欢的模板&#xff0c;点击“START WITH ACADEMIC RESUME” 点击 …

calico-kube-controllers 启动失败处理

故障描述calico-kube-controllers 异常&#xff0c;不断重启日志信息如下2023-02-21 01:26:47.085 [INFO][1] main.go 92: Loaded configuration from environment config&config.Config{LogLevel:"info", WorkloadEndpointWorkers:1, ProfileWorkers:1, PolicyW…

CAD正式学习(一)

CAD正式学习&#xff08;一&#xff09;&#xff08;23.2.20&#xff09; CAD简介 CAD是Autodesk&#xff08;欧特克&#xff09;公司首次于1982年开发的自动计算机辅助软件&#xff0c;主要用于二维绘图、详细绘制、设计文档和基本三维设计&#xff0c;是广为流行的绘图工具…

Web前端:什么是Vue Native 框架?有什么特点?

Vue Native是一个使用Vue.Js开发本地移动应用程序的框架。该框架将文档转换为React Native&#xff0c;进而为你提供适用于Android和iOS的本地应用程序。实际上&#xff0c;Vue Native应用程序据说是React API的包装。Vue将Vue.js和React结合在一起&#xff0c;让你的开发团队充…

学习OpenGL图形2D/3D编程

环境:Windows+Visual Studio 2019 最流行的几个库:GLUT,SDL,SFML和GLFW

我的创作纪念日

机缘 不敢相信已经整整四年了&#xff0c;从以前刚上大学的青涩&#xff0c;到现在对计算机和编程有了一些了解&#xff0c;真是感慨&#xff0c;时间流逝&#xff0c;这几年发生了很多&#xff0c;人也渐渐成长。哎&#xff0c;人生能有几个四年&#xff1f; 收获 提示&…

小程序 npm sill idealTree buildDeps 安装一直没反应

目录 一、问题 二、解决 1、删除.npmsrc 、清除缓存 2、更换镜像源 3、最终检测 一、问题 记录&#xff1a;今天npm 一直安装不成功 显示&#xff1a;sill idealTree buildDeps 我的版本&#xff1a; 我百度到换镜像源安装方法&#xff0c;但我尝试后&#xff0c;依然…