数组输出不正确

时间:2015-01-15 19:45:50

标签: java arrays

在尝试创建一个向后显示一组输入数组的程序时,我遇到了一个问题,无论我做什么,所有变量都输出为“0”。这可能与我用于获取数组的循环有一些简单的问题,而且我忽略了一些东西,我只需要一双新眼睛来告诉我我做错了什么。

import java.io.*;
class ReverseArray
{
    public static void main (String args[]) throws IOException
    {
        InputStreamReader inStream = new InputStreamReader(System.in);
        BufferedReader reader = new BufferedReader(inStream);
        String inInput;
        int count = 0;
        int[] userInput = new int[10];
        int newInput = 0;


        System.out.println ("Please enter ten whole numbers:");

        for (count = 0; count <= 9; count++) 
        {
            inInput = reader.readLine();
            newInput = Integer.parseInt(inInput);
            newInput = userInput[count];
        }

        System.out.println ("These numbers in reverse order is:");
        System.out.println (userInput[9]);
        System.out.println (userInput[8]);
        System.out.println (userInput[7]);
        System.out.println (userInput[6]);
        System.out.println (userInput[5]);
        System.out.println (userInput[4]);
        System.out.println (userInput[3]);
        System.out.println (userInput[2]);
        System.out.println (userInput[1]);
        System.out.println (userInput[0]);

    }
}

7 个答案:

答案 0 :(得分:3)

我想你想要

userInput[count] = newInput;

不是

newInput = userInput[count];

答案 1 :(得分:2)

语句newInput = userInput[count];将语句右侧的值(即索引count处的数组元素)赋给变量newInput。你想做相反的事情:

userInput[count] = newInput;   // assign the value of newInput to array element

答案 2 :(得分:1)

newInput = userInput[count];

应改为:

userInput[count] = newInput;

或者对于更多上下文,您的分配循环:

for (count = 0; count <= 9; count++) {
    inInput = reader.readLine();
    newInput = Integer.parseInt(inInput); 
    newInput = userInput[count]; 
} 

应阅读:

for (count = 0; count <= 9; count++) {
    inInput = reader.readLine();
    newInput = Integer.parseInt(inInput); 
    userInput[count] = newInput;
} 

您正在将数组分配给newInput而不是相反。

答案 3 :(得分:1)

newInput = userInput[count];

需要

userInput[count] = newInput;

但您可以使用

跳过不必要的作业

userInput[count] = Integer.parseInt(inInput);

答案 4 :(得分:0)

在您拥有的行

newInput = userInput[count];

反转这两个变量应该是

userInput[count] = newInput;

答案 5 :(得分:0)

那是因为你需要扭转这一行:

userInput[count] = newInput;

但是,使用for-loop打印输出结果,使用.length计算数组长度:

import java.io.*;

class ReverseArray
{
    public static void main (String args[]) throws IOException
    {
        InputStreamReader inStream = new InputStreamReader(System.in);
        BufferedReader reader = new BufferedReader(inStream);
        int[] userInput = new int[10];

        // fill the array
        System.out.println ("Please enter ten whole numbers:");
        for (int count = 0; count < userInput.length; count++)
            userInput[count] = Integer.parseInt(reader.readLine());

        // print out the array values
        System.out.println ("These numbers in reverse order is:");
        for (int count = userInput.length - 1; count >= 0; count--)
            System.out.println (userInput[count]);
    }
}

答案 6 :(得分:0)

因为您尚未为数组分配任何值,

newInput = userInput[count];

将此更改为

userInput[count] = newInput;