首页 > 解决方案 > 如果满足 if 循环内部条件,如何退出 for 循环

问题描述

我正在尝试创建一种方法,该方法允许您选择测试分数数组中的哪个索引。它将检查分数是多少并返回该分数的分数。在我的 getGrade 方法中,无论分数是多少,它都会返回“NG”。

private double[] scores = new double[3];
private static int[]boundaryVals={80,72,64,60,56,52,48,40,35,30,1,0};
    private static String[]grades={"A1","A2","B1","B2","B3","C1","C2","C3","D1","D2","F","NG"};

public String getGrade(int i) {
        String grade = "";
        for(int x=0;x<boundaryVals.length;x++) {
            if(boundaryVals[x] <= i) {
                grade = grades[x];
                
            }
        }
        return grade;
    }

标签: java

解决方案


只需更改循环退出条件以在分配成绩时终止。

public String getGrade(int i) {
    String grade = "";
    for(int x=0; x<boundaryVals.length && !grade.equals(""); x++) {
        if (boundaryVals[x] <= i) {
            grade = grades[x];               
        }
    }
    return grade;
}

这是更好的结构,因为它在一个地方具有循环终止条件,而不是通过使用“break”将其展开。

像往常一样,这不是一个硬性规定。对于更复杂的情况,“break”更清晰。这是一个品味问题。

正如评论中所建议的,从中间循环“返回”在这种特殊情况下也不是一个糟糕的解决方案。但我认为值得指出的是,循环条件不仅限于从 0 到 N 的简单计数。


推荐阅读