Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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中的数组方法_Java_Arrays_Methods - Fatal编程技术网

Java中的数组方法

Java中的数组方法,java,arrays,methods,Java,Arrays,Methods,我正在尝试编写一种方法,使我能够将数字添加到数组中。如果我输入某物execpt 0,它将是数组的第一个数字。下一个(0除外)将是第二个数字。当我输入0时,程序将结束。 例如1,2,3,4,5,0将显示1,2,3,4,5,但当我输入它时,我得到0,5,5,5。你能帮忙吗 这里有一个更新版本,没有错误 import java.util.*; public class test { public static int[] addToArray(int[] bag, int value)

我正在尝试编写一种方法,使我能够将数字添加到数组中。如果我输入某物execpt 0,它将是数组的第一个数字。下一个(0除外)将是第二个数字。当我输入0时,程序将结束。 例如1,2,3,4,5,0将显示1,2,3,4,5,但当我输入它时,我得到0,5,5,5。你能帮忙吗

这里有一个更新版本,没有错误

import java.util.*; 

public class test
{
     public static int[] addToArray(int[] bag, int value)
     {
         int i; 
         for(i = 0; i <= bag.length - 1; i++)
         {
              bag[i] = value;
              if(bag[i] == 0)
              {
                   return bag;
              }

         }
         return bag;
      }

      public static void main(String[] args) 
      {
           Scanner scan = new Scanner(System.in);
           int[] bag = new int[5];
           int i, value;
           i = 0;
           System.out.println("Enter the values : ");
           do
           {
                value = scan.nextInt();
                addToArray(bag, value);               
           }
           while(bag[i] != 0);

           System.out.println(Arrays.toString(bag)); 
       }
}
import java.util.*;
公开课考试
{
公共静态int[]addToArray(int[]包,int值)
{
int i;

for(i=0;i您的
addToArray
方法每次调用时都会替换整个数组。这就是for循环所做的

for(i = 0; i <= bag.length - 1; i++) {
    bag[i] = value;
    ...
}
行李[0]=0
,然后
if
将成功返回行李

您需要的是找到应该在数组的哪个位置添加此值

public static int findNextEmptyPosition(bag) { .... }

...
int nextPosition = findNextEmptyPosition(bag);
bag[nextPosition] = value;
...

//check is the value is zero and stop your while loop.

好的。我解决了这个问题。在重定义整个数组的每个循环中都会出现这个问题,所以它会打印我在0之前输入的最后一个数字。谢谢大家给我看这个问题。我通过向方法添加另一个参数来解决。索引参数“I”.现在,中的循环不会从零开始。它将从停止的位置开始,这样我就可以定义空数组,而无需重新定义以前的数组。谢谢大家的帮助

import java.util.*; 

public class test
{
  public static int[] addToArray(int[] bag, int value, int i)
  {
    int j; 
    for(j = i; j <= bag.length - 1; j++)
    {
        bag[j] = value;
        if(bag[j] == 0)
        {
            for(; j <= bag.length - 1; j++)
            bag[j] = 0;
            return bag;
        }

      }
      return bag;
   }

   public static void main(String[] args) 
   {
     Scanner scan = new Scanner(System.in);
     int[] bag = new int[5];
     int i, value;
     i = 0;
     System.out.println("Enter the values : ");
     do
     {
         value = scan.nextInt();
         addToArray(bag, value, i);
         i++;               
     }
     while(value != 0);

     System.out.println(Arrays.toString(bag)); 
   }
}
import java.util.*;
公开课考试
{
公共静态int[]addToArray(int[]包,int值,int i)
{
int j;

对于(j=i;j)您是否尝试使用调试器?您在哪里声明了“扫描”当你输入一个新的值时,你正在循环数组。5是你输入的最后一个值,当你输入5时,它循环整个数组并将值5分配给数组元素。在AdtoSt数组方法中去掉for循环,然后再试一次。
import java.util.*; 

public class test
{
  public static int[] addToArray(int[] bag, int value, int i)
  {
    int j; 
    for(j = i; j <= bag.length - 1; j++)
    {
        bag[j] = value;
        if(bag[j] == 0)
        {
            for(; j <= bag.length - 1; j++)
            bag[j] = 0;
            return bag;
        }

      }
      return bag;
   }

   public static void main(String[] args) 
   {
     Scanner scan = new Scanner(System.in);
     int[] bag = new int[5];
     int i, value;
     i = 0;
     System.out.println("Enter the values : ");
     do
     {
         value = scan.nextInt();
         addToArray(bag, value, i);
         i++;               
     }
     while(value != 0);

     System.out.println(Arrays.toString(bag)); 
   }
}