java代码若editName方法返回值是false,那最后一段if括号中的editName为何还是为true?

packageuserpassword;importjava.util.Scanner;publicclasstextCustomerBiz{String[]names=... package userpassword;

import java.util.Scanner;

public class textCustomerBiz {
String[] names=new String[30];
public void addName(String name){
for(int i=0;i<names.length;i++){
if(names[i]==null){
names[i]=name;
break;
}
}
}
public void showNames(){
for(int i=0;i<names.length;i++){
if(names[i]!=null){
System.out.print(names[i]+"\t");
}
}
}
public boolean editName(String oldName,String newName){
boolean flag=false;
for(int i=0;i<names.length;i++){
if(names[i]!=null&&names[i].equals(oldName)){
names[i]=newName;
flag=true;
break;
}
}
return flag;
}

//textCustomerBiz
public static void main(String[]arg){
textCustomerBiz cb=new textCustomerBiz();
Scanner input=new Scanner(System.in);

for(int i=0;i<cb.names.length;i++){
System.out.println("请输入顾客姓名");
String name=input.next();
cb.addName(name);
cb.showNames();
System.out.println("继续吗y/n");
String yn=input.next();
if(yn.equals("n")){
break;
}

}
cb.showNames();
System.out.println("请输入要修改的客户姓名:");
String oldName=input.next();
System.out.println("请输入新的姓名:");
String newName=input.next();
System.out.println("修改结果");
if(cb.editName(oldName, newName)){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
}
}
展开
 我来答
雪飞潇潇
推荐于2016-10-31 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:916万
展开全部

经过测试代码没有什么问题.

editName方法是根据情况来返回flag,,而这个flag可以是true或者false ,

public boolean editName(String oldName, String newName) {
//return true; //这样写才是直接返回false啊
boolean flag = false;
for (int i = 0; i < names.length; i++) {
if (names[i] != null && names[i].equals(oldName)) {
names[i] = newName;
flag = true;
//如果旧用户名存在,那么就修改成新用户名,并且设置flag返回值为true
break;
}
}
return flag;//注意flag的值可能被flag=true已经修改成true了;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式