0

我编写了下面的代码来检查数组的元素。我得到了所需的答案。我只想知道我应该做些什么改变,这样它才能给我输出1, 2, 3, 4, 5.

此外,当我写a[]而不是b[],代码给了我错误a is already defined in main(java.lang.String[])。请你帮助我好吗?

class ArrayDemo15
{
    public static void main(String a[])
    {
        int b[]=new int[5];
        for(int i=0;i<5;i++)
        {
            System.out.println(b[i]+""+);
        }
    }
}
4

4 回答 4

2

你可以试试

System.out.println(Arrays.toString(b));

并查看您的 main 方法的参数 - 它被称为a,因此您不能更改 to 的名称,b因为a这将导致两个具有相同名称的变量。也许您应该将其更改为类似main(String[] args).


相关文件

于 2013-01-14T01:22:23.313 回答
0
int b[] = new int[5];

您的代码行只是创建一个新的 int 数组,其中包含 5 个空白元素。

int b[] = {1,2,3,4,5};

这一行将为您提供一个名为 b 的数组,其中包含元素 1、2、3、4、5。

至于第二个问题,您a[]的主要参数中有变量。

于 2013-01-14T01:42:58.577 回答
0

“我只想知道我应该做些什么改变,这样它才能给我输出1, 2, 3, 4, 5

如果您只想打印这些数字,那么您根本不需要数组。只需使用 for 循环

int counter=1;
for (counter=1; counter<=4; counter++)
    System.out.print(counter+", ");
//after loop print last element without comma
System.out.println(counter);

但是,如果您坚持改进代码并使用数组,请继续阅读此答案...

现在你的代码给出了编译错误,System.out.println(b[i]+""+);因为+在这种情况下是两个参数运算符,你只给它一个参数。将其更改为类似

System.out.print(b[i]+", ");

print改用了println,因为你不想在数字之间有新的换行符。

目前您的数组也填充了零,因为所有新数组都填充了一些默认值:
- 对于原始数字类型(int、byte、double 等)的数组,默认值为 0,
-对于原始布尔值,它是 false,
- 对于对象(如字符串),它为空。

所以你需要先用你的值填充你的数组。为此,您有两种选择

  1. 遍历数组并设置每个元素

    for (int index = 0; index < b.length; index++) {
        b[index] = index + 1;
    }
    
  2. 在创建数组时提供所有值,例如
    • int[] b1 = { 1, 2, 3, 4, 5 };此版本仅供参考
    • int[] b2 = new int[]{ 1, 2, 3, 4, 5 };这个版本不需要参考,可以在任何地方使用,例如作为一些接受 int 数组的方法的参数Arrays.sort(new int[]{ 5, 3, 1, 4, 2 })

当数组的所有元素都设置为正确的值时,您需要打印它。您可以使用ARS 指出 的内置实用程序System.out.println(java.util.Arrays.toString(b))执行此操作,也可以使用循环自己执行此操作

for (int i = 0; i < b.length - 1; i++) {// b.length - 1 I don't want to
    // print last element here since I don't want to add comma
    // after it
    System.out.print(b[i] + ", ");
}
// now it is time for last element of array
System.out.println(b[b.length - 1]);
//since b[]={1,2,3,4,5} b.length=5 so it will print b[4] -> 5
于 2013-01-14T02:20:48.403 回答
0

如果您在未指定初始值的情况下初始化数组,Java 会根据其类型将数组中的每个元素设置为默认值;int 的默认值是 0。如果您希望 [1,2,3,4,5] 作为数组而不是 [0,0,0,0,0],您可以在初始化时设置数组的内容,即int b[] = {1,2,3,4,5};。您还可以通过在调用之前添加一行来在 for 循环中设置数组println

for(int i = 0; i < 5; i++){
   b[i] = i+1;
   System.out.println(b[i]);
}

您收到该错误的原因是您无法重新声明变量的类型,只能重新分配它。例如,

int a = 4;
int a = 5;

不允许,但是

int a = 4;
a = 5;

is allowed. In the main method, the array a is declared as a String[], and cannot be redeclared as an int[].

于 2013-01-14T03:54:08.120 回答