【发布时间】:2015-06-06 13:02:52
【问题描述】:
我必须编写一个检查密码的程序。
- 如果用户输入的密码是'bolt',会显示'
The password is valid' - 否则将显示“
The password is invalid”。
该程序仅适用于 if 部分,但不适用于 else。
那就是当我输入 bolt 时,它会显示正确的消息。
但是当我输入 bolt 以外的内容时,它不会显示“The password is invalid”。
我被告知要测试使用 char.At 的所有四个字符。
import java.util.Scanner;
public class MyClass {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter your 4-character password:");
String password = input.next();
for (int i = 0; i < password.length(); i++) {
if (password.charAt(i) == 'B' || password.charAt(i) == 'b')
if (password.charAt(i + 1) == 'O'
|| password.charAt(i + 1) == 'o')
if (password.charAt(i + 2) == 'L'
|| password.charAt(i + 2) == 'l')
if (password.charAt(i + 3) == 'T'
|| password.charAt(i + 3) == 't') {
System.out.println("The password is valid");
}
else {
System.out.println("The password is invalid!");
}
}
}
【问题讨论】:
-
我认为你的 else 只是处于错误的深度。
-
任何使用某种形式的循环的解决方案都是低于标准的。如果您知道密码由 4 个字符组成,则应首先检查 null,然后检查字符串长度,然后才开始比较字符。此时您知道输入字符串是 4 个字符,因此不需要循环(这就是我在下面提出的解决方案所做的)。
标签: java string if-statement