package com.company; import java.util.Scanner; public class Demo001 { public static void main(String[] args) { Scanner mima=new Scanner(System.in); System.out.println("欢迎进入注册系统\n"); switch (true){ System.out.println("请输入用户名:"); String name=mima.next(); System.out.println("请输入密码:"); String password =mima.next(); System.out.println("请再次输入密码:"); String password1 =mima.next(); if (name.length()<3&&password.length()<6){ System.out.println("用户名长度不能小于3,密码长度不能小于6"); }else if (password.equalsIgnoreCase(password1)){ System.out.println("注册成功请牢记密码"); break; }else { System.out.println("两次密码需相同"); } } } }
时间: 2024-02-14 21:08:51 浏览: 54
这段代码中存在一些问题,以下是修改后的代码:
```java
package com.company;
import java.util.Scanner;
public class Demo001 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("欢迎进入注册系统\n");
while (true) {
System.out.println("请输入用户名:");
String name = input.next();
System.out.println("请输入密码:");
String password = input.next();
System.out.println("请再次输入密码:");
String password1 = input.next();
if (name.length() < 3 || password.length() < 6) {
System.out.println("用户名长度不能小于3,密码长度不能小于6");
} else if (!password.equals(password1)) {
System.out.println("两次密码需相同");
} else {
System.out.println("注册成功请牢记密码");
break;
}
}
}
}
```
以下是修改后的说明:
1. `Scanner` 对象的名称最好取得有意义一些,例如 `input`。
2. `switch` 语句的使用不符合语法规则,应该改为 `while (true)` 循环。
3. 检查用户名和密码长度的 `if` 语句中,应该使用逻辑运算符 `||`,因为当用户名或密码长度小于规定的长度时,都需要输出提示信息。
4. 在比较两次密码是否相同时,应该使用 `!password.equals(password1)`,因为 `equalsIgnoreCase()` 方法在比较字符串时不考虑大小写,而在此处需要考虑大小写。
5. 在输入密码时,最好使用 `input.nextLine()`,以避免输入的字符串含有空格而只取到空格前的部分。
阅读全文