java - 由于未知原因返回 ArrayIndexOutOfBoundsException 错误

标签 java arrays bubble-sort

我正在尝试创建一个基本的冒泡排序程序,但在某些时候该数组尝试引用第 11 个位置,尽管该数组有 10 长,而且我不确定它何时发生

int Last, i = 0, Temp;
    int[] Numbers = new int[10];
    String[] NumbersString = new String[10];
    String initialString = TextBox.getText();
    NumbersString = initialString.split(" ");
    while(i<10){
        Numbers[i] = Integer.parseInt(NumbersString[i]);
        i = i + 1;
    }
    Last = 9;
    Boolean Swapped = true;
    while(Swapped = true) {
        Swapped = false;
        i = 0;
        while(i < Last) {
                if(Numbers[i] > Numbers[i+1]){
                Temp = Numbers[i];
                Numbers[i] = Numbers[i+1];
                Numbers[i+1] = Temp;
                Swapped = true;
                }
            i = i + 1;
        }
        Last = Last-1;
    }
    String Result = Numbers[0] + " " + Numbers[1] + " " + Numbers[2] + " " + Numbers[3] + " " + Numbers[4] + " " + Numbers[5] + " " + Numbers[6] + " " + Numbers[7] + " " + Numbers[8] + " " + Numbers[9];
    ResultText.setText(Result);

最佳答案

改变

 while(Swapped = true) {

 while(Swapped == true) {

发生的情况是 Last 首先包装为 Negative,然后当它达到最小负数时,它包装为 Integer.MAX_VALUE,然后 i 将超过 9

关于java - 由于未知原因返回 ArrayIndexOutOfBoundsException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40542501/

相关文章:

java - 如何归档Sybase数据库中的旧数据?

java - 使用 While 与 If 防止数组中出现重复的整数 ID 号

java - Java冒泡排序遇到问题

java - 如何用其他 Observables 过滤 Observables

java - Android 应用程序滑动 viewpager 和滚动 recyclerview 非常慢,如何查明原因?

Java JFrame 方法 pack()

通过 fgets() 读取文件时检查错误

java - length 和 length() 有什么区别?

C - 如何将一对夫妇的第一个数字按升序排列?

algorithm - 并行算法分析