我想知道为什么为什么输入的遍历数组里面if语句中是true为什么却还是不抛出异常?

能追上奔驰的AE86 2021-04-10 02:40:31
static String[] usernames = {"张三","李四","王五"};
public static void main(String[] args) throws RegisterException {
//使用Scanner输入注册信息
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要注册的用户名:");
String username = sc.next();
checkName(username);

}
//判断
public static void checkName(String username) throws RegisterException {
//遍历数组
for (String name :usernames){
if (username.equals(usernames)){
throw new RegisterException("错误");
}
}
System.out.println("注册成功");
}

数组中已经存在张三,都是输入张三却还是显示注册成功,不应该抛出异常后中断处理吗?

...全文
197 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
netwar 2021-04-11
  • 打赏
  • 举报
回复
/** //这里业务逻辑最好改成如下 long num=Arrays.stream(userNames).filter(item->item.equals(username)).count(); return num>0; **/ //遍历数组 for (String name :userNames){ if(username.equals(name)){ throw new RegisterException("错误"); } }
m0_54814086 2021-04-11
  • 打赏
  • 举报
回复
修改之后的代码如下: 运行结果:
立青_ 2021-04-10
  • 打赏
  • 举报
回复
我都不知道说啥,你遍历数组不拿name 比,拿原数组比,你遍历的意义何在?
开心就好O 2021-04-10
  • 打赏
  • 举报
回复
username.equals(usernames) 改成 username.equals(name)

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧