
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("修改失败");
}
}
} 展开
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("修改失败");
}
}
} 展开
1个回答
展开全部
经过测试代码没有什么问题.
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了;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询