黑马程序员技术交流社区
标题:
Java 基础写的一个小登陆,感觉 代码很凌乱(待优化)
[打印本页]
作者:
yonghong_cui
时间:
2015-9-15 01:56
标题:
Java 基础写的一个小登陆,感觉 代码很凌乱(待优化)
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("登陸失敗");
}
}
}
}
}
两个问题 :
一:代码写的比较凌乱, 以实现功能为目的 ,有待优化 ;
二:貌似判断 非空 和 非空字符串 没有起作用。 (望大神指点。)
对于第二个问题, 我自己一时也没想出是为什么。
作者:
pegasus
时间:
2015-9-15 09:34
public class Scanner_Login {
public static void main(String[] args) {
// 定义账号和密码
String username = "admin";
String password = "admin";
Scanner sc = new Scanner(System.in);
int count = 1;
while (count <= 3) {
System.out.println("请输入账号:");
String user = sc.next();
System.out.println("请输入密码:");
String passwd = sc.next();
if (!(user.equals("") && passwd.equals(""))) {
if (user.trim().equals(username) && passwd.trim().equals(password)) {
System.out.println("登陆成功");
break;
}
}
System.out.println("登陸失敗");
System.out.println((3 - count) != 0 ? "你还有" + (3 - count) + "次机会"
: "对不起,你三次输入皆错误!");
count++;
}
}
}
复制代码
作者:
pegasus
时间:
2015-9-15 09:42
我刚才看了下Scanner的说明文档大致是这样的。
扫描操作被阻塞,而等待信息的输入,而如何判断以输入,是通过 Character.isWhitespace 来识别。
至于 Character.isWhitespace请参考说明文档
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2