所以我必须编写一个程序,从键盘上接受10个数字(整数)。每个数字都存储在数组的不同元素中。 然后我的程序必须以相反的顺序显示数组的内容。
int [] array = new int [10];
for(int i = array.length - 1;i >= 0; i--)
{
int number = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter number " + (i+1)));
array[i] = number;
}
JOptionPane.showMessageDialog(null, array[i]);
}
我试图将JOPtionPane.showMessageDialog放在循环之外但是程序找不到整数" i"。我不知道该怎么做:/请帮忙:P
答案 0 :(得分:2)
您需要先输入数据,然后按照您想要的顺序显示...
int [] array = new int[10];
for (int i = 0; i < array.length - 1; i++) {
int number = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter number " + (i + 1)));
array[i] = number;
}
for (int i = array.length - 1; i >= 0; i--) {
JOptionPane.showMessageDialog(null, array[i]);
}
我也很想简单地为你的最终结果构造一个StringBuilder,然后只显示一次消息对话框,而不是数组的每个元素,但这取决于你自己:)
答案 1 :(得分:1)
i
属于循环范围,这就是为什么你无法在循环之外使用它。
要打印反向数组,请使用另一个循环
// insert the data to the array
int [] array = new int [10];
for(int i = array.length - 1 ; i >= 0 ; i--) {
int number = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter number " + (i+1)));
array[i] = number;
}
// print the array
for (int i = 0 ; i < array.length ; ++i) {
JOptionPane.showMessageDialog(null, array[i]);
}
答案 2 :(得分:0)
那是因为你已经在for循环中声明了,所以它有循环范围。在循环之前声明它以在循环结束后重用它
int i;
for(i = array.length - 1;i >= 0; i--)
之后,你可以再做一个循环:
for(i = 0; i < array.length; i++)
以相反的顺序打印。
答案 3 :(得分:0)
你需要两个for循环。第一个从0到9迭代并询问数字并将其放入数组中。第二个从9迭代到0并打印数组中的数字