Java中的数组方法
我正在尝试编写一种方法,使我能够将数字添加到数组中。如果我输入某物execpt 0,它将是数组的第一个数字。下一个(0除外)将是第二个数字。当我输入0时,程序将结束。 例如1,2,3,4,5,0将显示1,2,3,4,5,但当我输入它时,我得到0,5,5,5。你能帮忙吗 这里有一个更新版本,没有错误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)
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));
}
}