【发布时间】:2012-10-24 08:34:42
【问题描述】:
我想写一个简单的java程序来检查keycode是否匹配一组条件。
这是我目前所拥有的:
Scanner keycode = new Scanner(System.in);
System.out.println("Input keycode");
String key1 = keycode.nextLine();
do {
if (key1.length() < 6 || key1.length() > 8) {
System.out.println("must be at least 6 letter and max 8 letter");
return;
}
else {
boolean upper = false;
boolean lower = false;
boolean number = false;
for (char c : key1.toCharArray()) {
if (Character.isUpperCase(c)) {
upper = true;
} else if (Character.isLowerCase(c)) {
lower = true;
} else if (Character.isDigit(c)) {
number = true;
}
}
if (!upper) {
System.out.println("must contain at least one uppercase character");
return;
} else if (!lower) {
System.out.println("must contain at least one lowercase character");
return;
} else if (!number) {
System.out.println("must contain at least one number");
return;
} else {
return;
}
}
} while (true);
System.out.println("Input keycode again");
String key2 = keycode.nextLine();
if (key1.equals(key2)) {
System.out.println("keycode matched");
} else {
System.out.println("keycode dont match");
}
提示用户输入键码。
程序首先检查是大于6个字符小于8个字符。
然后检查它是否包含小写、大写和数字。
我希望它允许用户在犯任何错误时再次输入密码,而不是从头再来。
如果成功,它会要求用户再次输入键码。如果两个键码不匹配, 允许用户重试。 3次尝试失败后,系统会回复'keycode mismatch'。
如果密码不符合要求且密码不匹配,我需要帮助的部分是允许用户输入密码。当我输入少于 6 个字符的密码时,我得到以下输出:
must be at least 6 letter and max 8 letter
must be at least 6 letter and max 8 letter
must be at least 6 letter and max 8 letter
must be at least 6 letter and max 8 letter
must be at least 6 letter and max 8 letter
【问题讨论】:
-
请格式化您的代码而不发布。您的最后一个代码也格式不正确。在这种状态下很难阅读您的代码。
-
再次,使用布尔变量
redo。在您使用过return的每个地方,将其替换为redo = true。而你的while条件应该是while(redo); -
显示错误信息后必须再次扫描密码
-
我的 Eclipse IDe 告诉我,在 do-while 循环之后包含“无法访问的代码”