A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package cn.itcast.string;

import java.util.Scanner;

/**
* 模拟用户的登陆, 最多可有三次机会。 思路: 已知账号和密码, 通过键盘录入来获取用户的输入, 判断用户输入 , 并记录次数 用循环来控制
*/
public class Scanner_Login {

    public static void main(String[] args) {
        // 定义账号和密码
        String username = "admin";
        String password = "admin";
        // 创建键盘录入对象
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入账号:");
        String user = sc.next();

        System.out.println("请输入密码:");
        String passwd = sc.next();

        for (int i = 3; i>0; i--) {
            if ((user != " " && user != null)
                    && (passwd != null && passwd != " ")) {
                if (user.equals(username) && passwd.equals(passwd)) {
                    System.out.println("登陆成功");
                    break;
                } else {
                    if((i-1)!=0){
                        System.out.println("账号名和密码不匹配");
                        System.out.println("你还有" + (i-1) + "次機會");
                        System.out.println("请重新输入账号:");
                        user = sc.next();
                        System.out.println("请重新输入密码:");
                        passwd = sc.next();
                    }else{
                        System.out.println("登陸失敗");
                    }
                }
            } else {
                if((i-1)!=0){
                System.out.println("请输入正确的格式");
                System.out.println("你还有" + (i-1) + "次機會");
               
                System.out.println("请重新输入账号:");
                user = sc.next();
                System.out.println("请重新输入密码:");
                passwd = sc.next();
                }else{
                    System.out.println("登陸失敗");
                }
            }
        }
    }

}
两个问题 :
一:代码写的比较凌乱, 以实现功能为目的 ,有待优化 ;
二:貌似判断     非空     和   非空字符串 没有起作用。  (望大神指点。)

对于第二个问题, 我自己一时也没想出是为什么。

2 个回复

倒序浏览
  1. public class Scanner_Login {
  2.         public static void main(String[] args) {
  3.                 // 定义账号和密码
  4.                 String username = "admin";
  5.                 String password = "admin";
  6.                 Scanner sc = new Scanner(System.in);
  7.                 int count = 1;
  8.                 while (count <= 3) {
  9.                         System.out.println("请输入账号:");
  10.                         String user = sc.next();
  11.                         System.out.println("请输入密码:");
  12.                         String passwd = sc.next();

  13.                         if (!(user.equals("") && passwd.equals(""))) {
  14.                                 if (user.trim().equals(username) && passwd.trim().equals(password)) {
  15.                                         System.out.println("登陆成功");
  16.                                         break;
  17.                                 }
  18.                         }
  19.                         System.out.println("登陸失敗");
  20.                         System.out.println((3 - count) != 0 ? "你还有" + (3 - count) + "次机会"
  21.                                         : "对不起,你三次输入皆错误!");
  22.                         count++;
  23.                 }
  24.         }
  25. }
复制代码
回复 使用道具 举报
我刚才看了下Scanner的说明文档大致是这样的。
扫描操作被阻塞,而等待信息的输入,而如何判断以输入,是通过 Character.isWhitespace 来识别。
至于 Character.isWhitespace请参考说明文档
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马