java - 重新排列 int 数组中的 int 值 java

标签 java arrays loops for-loop reverse

所以我必须编写一个Java程序,用户在其中输入他们想要输入多少个值,在数组中输入这么多值,然后打印该数组。然后我必须反转数组中的元素(而不是反转打印或创建一个新数组),并再次打印这些值。这是我的以下代码:

package reversearray;

import java.util.*;

public class Swap_main {

    /**
     * Taylor Marino
     */
    public static void main(String[] args) {
        int arraysize = 0, junk, junk2;
        Scanner reader = new Scanner(System.in);
        System.out.println("How many values are you going to enter?");
        arraysize = reader.nextInt();
        int[] array = new int[arraysize];
        System.out.println("You will now be asked to enter your values, one at a time");
        for(int counter = 0; counter < arraysize; counter++){
            System.out.println("Enter next value");
            array[counter] = reader.nextInt();
        }
        System.out.println("The values you entered are: ");
        for(int counter2 = 0; counter2 < arraysize; counter2++)
            System.out.print(array[counter2] + ", ");
        for(int counter3 = 0, counter4 = arraysize; counter3 != counter4; counter3++, counter4--){
            junk = array[counter3];
            junk2 = array[counter4];
            array[counter4] = junk;
            array[counter3] = junk2;
        }
        System.out.println("The values you entered are (in reverse order): ");
        for(int counter5 = 0; counter5 < arraysize; counter5++)
            System.out.print(array[counter5] + ", ");
    }

}

但是我在此循环中收到错误:

        for(int counter3 = 0, counter4 = arraysize; counter3 != counter4; counter3++, counter4--){
            junk = array[counter3];
            junk2 = array[counter4];
            array[counter4] = junk;
            array[counter3] = junk2;
        }

我不明白这里出了什么问题,但它说 array[counter4] = junk; 出现错误 我做错了什么?

最佳答案

这会给你一个 ArrayOutOfBoundsException 异常,因为数组的索引范围是从 0 到 length-1。从 counter4 = arraysize-1 开始。

编辑:另外,你应该改变

counter3 != counter4

counter3 < counter4

因为对于奇数长度的数组,第一个条件永远不会给你 true。

关于java - 重新排列 int 数组中的 int 值 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14652607/

相关文章:

sql - 在 PostgreSQL 中将一行转换为数组

Java,对象列表,循环更改值

jquery - 等待异步ajax请求完成

java - 我可以在java中使用列表作为数据库吗

java - Excel 单元格中的值为空?

java - 使用环境变量填充 @ConfigurationProperties 中的 Map

javascript - 等待循环结束然后在 Javascript 中执行操作的最优雅的方法是什么?

java - 无法编译为 android (Unity)

arrays - 查找一系列股票值(value)中的买/卖价格,以最大化正差额

c# - 将 List<Object> 转换为 System.Array[]