运行很正常,也能显示出找到的客户姓名,但要是输入找不到的客户姓名就会报错了。
可是我完全按照书上的demo来做的
这是客户类
- Java code
String[] names = new String[30]; // 姓名数组 /** * 增加姓名 * @param name要增加的姓名 */ public void addName(String name){ for(int i =0;i<names.length;i++){ if(names[i]==null){ names[i]=name; break; } } } /** * 显示姓名 */ public void showNames(){ System.out.println("**************************"); System.out.println("\t客户姓名列表:"); System.out.println("**************************"); for(int i =0;i<names.length;i++){ if(names[i]!=null){ System.out.print(names[i]+"\t"); } } System.out.println(); } /** * 阶段2:查找 * @param name要查找的姓名 * @return 是否找到 */ public boolean search(String name){ boolean find = false; // 代表是否找到 int i=0; while(names[i] != null){ if(names[i].equals(name)){ find = true; // 找到了] break; } i++; } return find; }
这是test
- Java code
CustomerBiz cb=new CustomerBiz(); boolean con=true; Scanner input = new Scanner(System.in); while(con){ System.out .print("请输入客户的姓名:"); String newName = input.next(); cb.addName(newName); System.out .print("继续输入吗?(y/n):"); String choice=input.next(); if(choice.equals("n")){ con=false; } } cb.showNames(); System.out.print("\n请输入要查找的客户姓名:"); String name = input.next(); System.out.println("*****查找结果*****"); if(cb.search(name)){ System.out.println("找到了!"); } else{ System.out.println("没找到!"); }
哪位大虾帮忙解答一下,求指导
------解决方案--------------------
这个程序没问题啊~ 不过这样写 不觉得麻烦啊~需求那么简单,写的这么复杂、、、而且在main方法写逻辑、、
------解决方案--------------------
我试了下没报错呀!你重试一下吧