黑马程序员技术交流社区
标题:
一个小程序
[打印本页]
作者:
志ぁ才☆博ぁ成
时间:
2015-1-19 22:53
标题:
一个小程序
今天学的登录访问代码,和前天学的猜数字小游戏结合在一起,但是有点不足,后来想到for循环中的break的标记法,问题马上解决了。
import java.util.Random;
import java.util.Scanner;
public class LoginTest {
public static void main(String[] args) {
//创建对象
User user = new User();
user.setUserName("maxilong");
user.setUserPassword("12345");
w: for (int x = 0; x < 3; x++) {
//获取键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = sc.nextLine();
System.out.println("请输入密码:");
String pwd = sc.nextLine();
//判断用户名和密码是否正确
if (user.isLogin(name, pwd)) {
System.out.println("恭喜您登陆成功!");
int i = 100;
//创建Random类并调用对象
Random r = new Random();
int y = r.nextInt(i);
while (true) {
Scanner sc1 = new Scanner(System.in);
System.out.println("请您输入一个数(1-100)——猜数字游戏开始:");
int num = sc1.nextInt();
if (num > y) {
System.out.println("您猜的数" + num + "大了,再猜猜看!");
} else if (num < y) {
System.out.println("您猜的数" + num + "小了,再猜猜看!");
} else {
System.out.println("恭喜您,猜对了,大神...");
//跳出标记的循环
break w;
}
}
} else {
if ((2 - x) == 0) {
System.out.println("用户已被锁定,请与管理员联系!");
break;
}
System.out.println("用户名或密码不正确,请重新输入,您的登录次数还有" + (2 - x) + "次!");
}
}
}
}
public class User {
private String userName;
private String userPassword;
public User() {
super();
// TODO Auto-generated constructor stub
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
/**
*
* @param name
* 用户名
* @param password
* 密码
* @return 用户登录是否成功
*/
public boolean isLogin(String userName, String userPassword) {
return this.userName.equals(userName)
&& this.userPassword.equals(userPassword);
}
}
复制代码
:)
作者:
Gyx
时间:
2015-1-19 22:59
大赞!!
作者:
梁小刀11
时间:
2015-1-19 23:52
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
这两句的位置是不是应该调换一下? System.in是阻塞方法把,不按回车键是不会执行下一步的.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2