关于Java中return的一点问题

来源:百度知道 编辑:UC知道 时间:2024/06/27 19:18:18
有个函数是这样:
public boolean select(String name ){
boolean it = false;
enum1 = fHashtable.elements();
while(enum1.hasMoreElements()){

fpManager = (FieldManager2) enum1.nextElement();
if(fpManager.FieldName.equals(name)){
System.out.println("get you: "+name);
it = true;

}

}
return it;

}
这里的代码看着好像很多,但是我提的问题很简单,就是代码中return语句后的it会不会返回true值啊?我的if语句中如果符合条件的话,我就返回一个true,本来想直接写return true;但是那样不行。不知问题描述的清楚不?哪位达人给个提示!
下面的说的都挺好!本来我就是按照二楼所说的那样写!后来出现不了我想要的结果,看来是别的地方的问题!多谢各位的回答。只能给一个,分就给二楼吧!呵呵

呵呵, 我理解你的意思是: 遍历这个枚举对象, 如果有元素的名字和name相同, 就返回true, 对吧?

那么你的写法是完全正确的,只是有一个小问题, 那就是你既然已经找到一个匹配的了, 那么就没有必要再遍历下去了, 直接返回true就可以, 所以你的程序这么改执行效率会高些:
public boolean select(String name ){
enum1 = fHashtable.elements();
while(enum1.hasMoreElements()){

fpManager = (FieldManager2) enum1.nextElement();
if(fpManager.FieldName.equals(name)){
System.out.println("get you: "+name);
return true;
}

}
return false;
}
遇到符合条件的name就直接返回true, 除非一个匹配的都没有, 那么走到最后返回false, 这样不用耗费系统资源声明一个boolean变量, 还可以不遍历完整个对象.

会啊,可以返回true,这是完全合法的写法。

如果if执行了就return true,不执行return false