Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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循环外返回null 公共帐户[]搜索(双倍余额){ 布尔标志=假; 账户[]tmp=新账户[账户长度]; //循环,直到帐户数组结束。 如果我理解你的问题,你只是有点困惑- public Account [] search(double bal){ boolean flag=false; Account [] tmp = new Account[account.length]; //Loop until the end of the account array. for(int i=0;i<account.length && account[i]!=null;i++) { if(account[i].getBal()==bal) { tmp[i]=account[i]; System.out.println(tmp[i]); //here returns correct value flag=true; } } System.out.println(tmp[0]); //here returns null return tmp; } 公共帐户[]搜索(双倍余额){ int标志=0; 账户[]tmp=新账户[账户长度]; //循环,直到帐户数组结束。 对于(int i=0;i_Java_Arrays - Fatal编程技术网

Java对象在for循环外返回null 公共帐户[]搜索(双倍余额){ 布尔标志=假; 账户[]tmp=新账户[账户长度]; //循环,直到帐户数组结束。 如果我理解你的问题,你只是有点困惑- public Account [] search(double bal){ boolean flag=false; Account [] tmp = new Account[account.length]; //Loop until the end of the account array. for(int i=0;i<account.length && account[i]!=null;i++) { if(account[i].getBal()==bal) { tmp[i]=account[i]; System.out.println(tmp[i]); //here returns correct value flag=true; } } System.out.println(tmp[0]); //here returns null return tmp; } 公共帐户[]搜索(双倍余额){ int标志=0; 账户[]tmp=新账户[账户长度]; //循环,直到帐户数组结束。 对于(int i=0;i

Java对象在for循环外返回null 公共帐户[]搜索(双倍余额){ 布尔标志=假; 账户[]tmp=新账户[账户长度]; //循环,直到帐户数组结束。 如果我理解你的问题,你只是有点困惑- public Account [] search(double bal){ boolean flag=false; Account [] tmp = new Account[account.length]; //Loop until the end of the account array. for(int i=0;i<account.length && account[i]!=null;i++) { if(account[i].getBal()==bal) { tmp[i]=account[i]; System.out.println(tmp[i]); //here returns correct value flag=true; } } System.out.println(tmp[0]); //here returns null return tmp; } 公共帐户[]搜索(双倍余额){ int标志=0; 账户[]tmp=新账户[账户长度]; //循环,直到帐户数组结束。 对于(int i=0;i,java,arrays,Java,Arrays,中的 如果计数器i==0时条件为false,则tmp[0]最终将为null。您可以将ArrayList与tmp变量一起使用,然后将其转换为帐户数组,如下所示: if(account[i].getBal()==bal) { tmp[i]=account[i]; System.out.println(tmp[i]); //here returns correct value flag=true; }

中的

如果计数器i==0时条件为false,则tmp[0]最终将为null。您可以将ArrayList与tmp变量一起使用,然后将其转换为帐户数组,如下所示:

    if(account[i].getBal()==bal)
   {
           tmp[i]=account[i];
           System.out.println(tmp[i]);  //here returns correct value
           flag=true;
       }
   }
公共帐户[]搜索(双倍余额){
ArrayList tmp=新的ArrayList();

对于(int i=0;i如果第一个条件为false,则始终
temp[0]
将为null

public Account [] search(double bal){


ArrayList<Account> tmp = new ArrayList<Account>();

for(int i=0;i<account.length && account[i]!=null;i++)
{
if(account[i].getBal()==bal)
   {
           tmp.add(account[i]);
           System.out.println(tmp[i]);  //here returns correct value
       }
   }

   Account resultArray[] = new Account[tmp.size()];
   resultArray = tmp.toArray(resultArray);

   return resultArray;
}

因为在此代码中,如果第一个条件仅正确,它将进入
“if”
条件,然后将
account[i]
的值分配给
temp[0]
。否则它将永远为空。

拿出笔和纸,运行程序,标记每个对象的值。或者,使用调试器。
public Account [] search(double bal){


ArrayList<Account> tmp = new ArrayList<Account>();

for(int i=0;i<account.length && account[i]!=null;i++)
{
if(account[i].getBal()==bal)
   {
           tmp.add(account[i]);
           System.out.println(tmp[i]);  //here returns correct value
       }
   }

   Account resultArray[] = new Account[tmp.size()];
   resultArray = tmp.toArray(resultArray);

   return resultArray;
}
 if(account[i].getBal()==bal)
   {
           tmp[i]=account[i];
           System.out.println(tmp[i]);  //here returns correct value
           flag=true;
       }