Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中从for循环内部返回的正确方法?_Java_For Loop - Fatal编程技术网

Java中从for循环内部返回的正确方法?

Java中从for循环内部返回的正确方法?,java,for-loop,Java,For Loop,所以我有一个小方法,它接受一个整数参数并检查数组(设置为属性)是否包含某个对象。如果返回,则返回该对象,否则返回null。这里的问题是,当我试图返回某个内容时,会出现错误。这是: myClass.java:33: error: missing return statement } ^ 1 error 我有一个return语句,它包含了三元运算符,这意味着它会以任何代价返回一些东西。以下是我的方法: public Banesa gjejBanese(int nrB

所以我有一个小方法,它接受一个整数参数并检查数组(设置为属性)是否包含某个对象。如果返回,则返回该对象,否则返回
null
。这里的问题是,当我试图返回某个内容时,会出现错误。这是:

myClass.java:33: error: missing return statement
        }
        ^
1 error
我有一个return语句,它包含了三元运算符,这意味着它会以任何代价返回一些东西。以下是我的方法:

public Banesa gjejBanese(int nrBaneses) {

    for (int i = 0; i < listaBanesave.length; i++) {
        return (listaBanesave[i].getNrBanesa() == nrBaneses) ? listaBanesave[i] : null;
    }
}
公共银行(国际银行){
for(int i=0;i

怎么了?为什么会出现这个错误?

您应该在循环外有一个
返回值。因为当
listaBanesave
为空时,不会出现
return
语句-这会让编译器生气


返回什么是您的决定。。取决于您的逻辑。

您应该在循环外有一个
返回。因为当
listaBanesave
为空时,不会出现
return
语句-这会让编译器生气


返回什么是您的决定。。取决于您的逻辑。

您应该返回null作为方法的最后一行,即使根据您的规范(“如果返回,它将返回该对象,否则它将返回null

公共银行(国际银行){
for(int i=0;i
您应该返回null作为方法的最后一行,即使是根据您的规范(“如果返回,则返回该对象,否则返回null

公共银行(国际银行){
for(int i=0;i
循环中的条件可能不满足,并且可能不会返回

所以你需要有一个默认的返回

public Banesa gjejBanese(int nrBaneses) {

    for (int i = 0; i < listaBanesave.length; i++) {
        return (listaBanesave[i].getNrBanesa() == nrBaneses) ? listaBanesave[i] : null;
    }
   return null; //when there is no chance to enter in loop.
}
公共银行(国际银行){
for(int i=0;i
循环中的条件可能不满足,并且可能不会返回

所以你需要有一个默认的返回

public Banesa gjejBanese(int nrBaneses) {

    for (int i = 0; i < listaBanesave.length; i++) {
        return (listaBanesave[i].getNrBanesa() == nrBaneses) ? listaBanesave[i] : null;
    }
   return null; //when there is no chance to enter in loop.
}
公共银行(国际银行){
for(int i=0;i
接受整数参数并检查数组(设置为属性)是否包含特定对象。如果是,则返回该对象,否则返回null

根据您的需求,您的代码应该是(例如):

公共银行(国际银行){
班萨·雷特;
for(int i=0;i
使用您当前的代码:

  • 如果列表为空,则不会输入“for”循环,因此没有return语句——这就是编译错误
  • 在任何情况下,您只检查第一个元素,而从不检查其他元素,因为您在每个迭代中
    返回
    (其中只有一个迭代)
接受整数参数并检查数组(设置为属性)是否包含特定对象。如果是,则返回该对象,否则返回null

根据您的需求,您的代码应该是(例如):

公共银行(国际银行){
班萨·雷特;
for(int i=0;i
使用您当前的代码:

  • 如果列表为空,则不会输入“for”循环,因此没有return语句——这就是编译错误
  • 在任何情况下,您只检查第一个元素,而从不检查其他元素,因为您在每个迭代中
    返回
    (其中只有一个迭代)

我认为您需要循环查看
列表中的所有项目,检查每个项目是否符合标准,如果没有符合标准,
则返回null
。当前,如果第一项不符合标准,您的代码将返回
null
,即可以将其重写为:

public Banesa gjejBanese(int nrBaneses) {
    if(listaBanesave.length == 0)
        return null;
    return (listaBanesave[0].getNrBanesa() == nrBaneses) ? listaBanesave[0] : null;
}
想必这不是你想要的

public Banesa gjejBanese(int nrBaneses) {
    for (int i = 0; i < listaBanesave.length; i++) {
        if (listaBanesave[i].getNrBanesa() == nrBaneses) {
            return listaBanesave[i];
        }
    }
    return null;
}
公共银行(国际银行){
for(int i=0;i

因此,检查循环中的每个项目;如果匹配,则返回它。否则,一旦循环完成,您就知道没有匹配项了。
返回空值

我认为您需要在
listaBanesave
中的所有项目上循环,并检查每个项目是否符合标准,如果没有符合标准,则返回空值
。当前,如果第一项不符合标准,您的代码将返回
null
,即可以将其重写为:

public Banesa gjejBanese(int nrBaneses) {
    if(listaBanesave.length == 0)
        return null;
    return (listaBanesave[0].getNrBanesa() == nrBaneses) ? listaBanesave[0] : null;
}
想必这不是你想要的

public Banesa gjejBanese(int nrBaneses) {
    for (int i = 0; i < listaBanesave.length; i++) {
        if (listaBanesave[i].getNrBanesa() == nrBaneses) {
            return listaBanesave[i];
        }
    }
    return null;
}
公共银行(国际银行){
for(int i=0;ipublic Banesa gjejBanese(int nrBaneses) {

    for (int i = 0; i < listaBanesave.length; i++) 
    {
        if(istaBanesave[i].getNrBanesa() == nrBaneses)     
            return listaBanesave[i];
    }
    return null;
}
public Banesa gjejBanese(int nrBaneses) {
    Banesa found = null;
    for (int i = 0; i < listaBanesave.length; i++) {
        if (listaBanesave[i].getNrBanesa() == nrBaneses) {   // should this be == or equals()?
            found = listaBanesave[i];
            break;
        }
    }
    return found;
}