java: if 语句跳过后面的 if 语句

标签 java arrays if-statement arraylist continue

我有一个 2D 字符串数组,我将通过它逐行查找最小值。当我找到最小值时,我将找到的最小值的行添加到 ArrayList 中,以在下一次迭代中跳过该行,以找到数组中第二小的数字。我这样做直到每个行号都成为 ArrayList 的一部分。

查看到目前为止我的代码:

List assignedRow = new ArrayList();    
for(int t = 0; t < excelMatrix.length-1; t++){    
double lowest = Double.parseDouble(excelMatrix[0][1]);
    int row = 0, column = 0;    

    for(int r = 0; r < excelMatrix.length-1; r++){                      
        if(assignedRow.contains(r) == true) continue;               
        for(int c = 1; c < excelMatrix[r].length; c++){             
            double value = Double.parseDouble(excelMatrix[r][c]);
            if(lowest > value) {
                lowest = value;
                row = r;    
                column = c; 
            }   
        }   
    } 
    assignedRow.add(row);
}

到目前为止,代码运行良好,直到最小值位于第 0 行。之后,它始终执行继续条件。

我现在正在寻找一些东西,可以让我使用不属于 ArrayList 的下一个更高的 r 回到 for 循环。

我希望我的问题已经说清楚了。

最佳答案

我希望这会起作用。

  List assignedRow = new ArrayList();
    double lowest = 0;
    while (assignedRow.size() < excelMatrix.length) {

        // find intial lowest value from non assign row to compare
        for (int t = 0; t < excelMatrix.length - 1; t++) {
            if (!assignedRow.contains(t)) {
                lowest = Double.parseDouble(excelMatrix[t][0]);
                break;
            }
        }

        int row = 0, column = 0;
        for (int r = 0; r < excelMatrix.length - 1; r++) {
            if (assignedRow.contains(r)) continue;
            for (int c = 0; c < excelMatrix[r].length; c++) {
                double value = Double.parseDouble(excelMatrix[r][c]);
                if (lowest > value) {
                    lowest = value;
                    row = r;
                    column = c;
                }
            }
        }
        assignedRow.add(row);
    }

如果最低值存储在任何行的第一列,您的代码将不起作用,因为您从列索引 1 开始迭代(第三个 for 循环 int c=1lowest = Double .parseDouble(excelMatrix[0][1])

关于java: if 语句跳过后面的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38973789/

相关文章:

java - Arquillian ShrinkWrap 排除 import.sql

Java构造函数模式

arrays - Kotlin 类型不匹配 : inferred type is Int? 但预期为 Int

c - 为什么所有的数组元素都被初始化为 0 即使我们几乎不给前几个元素赋值

java - ReSTLet 2.3 如何设置临时目录

java - 检查用户是否是 java 应用程序中的 root

c++动态维数组的别名指针

excel - If Else 语句仅适用于 Excel VBA 用户窗体中的最后一行数据

python - 如何计算递归函数中的案例数?

javascript - Angular 2 - 如果条件对于所有值都为真