在尝试创建一个向后显示一组输入数组的程序时,我遇到了一个问题,无论我做什么,所有变量都输出为“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]);
}
}
答案 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;