目录
一、需求
A:模拟用户登录,给3次机会,并提示还有几次;
B:登录成功后,可选择是否玩猜数字小游戏;
二、分析
A:定义用户名和密码(假设已经存在);
B:键盘录入用户名和密码;
C:比较A,B中的用户名密码,若匹配则登录成功,并选择是否开始游戏,否则登录失败;
D:给3次机会,用循环改进;
三、代码实现
猜数字类package String_Realize;
import java.util.Scanner;
/*
* 需求:实现猜数字小游戏
*
* 分析:
* A:由系统随机给定数字,范围是1-100;
* B:键盘录入要猜的数字,给10次机会;
*/
public class GuessNumber {
// 猜数字方法
public static void start() {
// 记录系统随机给出的数字
int number = (int) (Math.random() * 100 + 1);
// 键盘录入要猜的数字,给10次机会
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
System.out.println("请输入你猜的数字(1-100):");
int guess = sc.nextInt();
if (guess == number) {
System.out.println("恭喜你第" + (i + 1) + "次猜中了!");
break;
} else {
if (i == 9) {
System.out.println("珍爱生命,告别猜谜!");
break;
}
if (guess > number) {
System.out.println("你猜的数字大了!,还有" + (9 - i) + "次机会");
} else if (guess < number) {
System.out.println("你猜的数字小了!,还有" + (9 - i) + "次机会");
}
}
}
}
}
模拟登录类package String_Realize;
import java.util.Scanner;
/*
* 需求:
* A:模拟用户登录,给3次机会,并提示还有几次;
* B:登录成功后,可选择是否玩猜数字小游戏;
* 分析:
* A:定义用户名和密码(假设已经存在);
* B:键盘录入用户名和密码;
* C:比较A,B中的用户名密码,若匹配则登录成功,否则登录失败
* D:给3次机会,用循环改进;
*/
public class StringTest {
public static void main(String[] args) {
// 定义用户名和密码
String username = "admin";
String password = "admin";
// 键盘录入用户名和密码
Scanner sc = new Scanner(System.in);
// 比较用户名和密码,只给3次机会
for (int i = 0; i < 3; i++) {
System.out.println("请输入用户名:");
String name = sc.nextLine();
System.out.println("请输入密码:");
String words = sc.nextLine();
if (name.equals(username) && words.equals(password)) {
System.out.println("登录成功!是否进行猜数字小游戏?(Y/N)");
while (true) {
String choice = sc.nextLine();
if (choice.equals("Y") || choice.equals("y")) {
GuessNumber.start();
System.out.println("你还要玩吗?(Y/N)");
} else {
break;
}
}
break;
} else {
if (i == 2) {
System.out.println("账号已冻结!");
break;
}
System.out.println("用户名或密码错误,你还有" + (2 - i) + "次机会!");
}
}
}
}
四、效果
五、总结
A:上述实现假定了用户已注册,不够完善,后期将使用集合和IO流来完成注册和登录;
皮卡qiu~
发布了62 篇原创文章 · 获赞 9 · 访问量 2万+
私信
关注
标签:用户名,String,登录,增强版,System,println,JavaSE,out
来源: https://blog.csdn.net/Sruggle/article/details/104077418