如何修复 else if 语句?

我正在使用 intellij 和 java 制作一个程序,可以根据用户的输入计算用户的成绩。到目前为止,我已经使用扫描仪成功收集了用户的输入并得到了平均值。我正在使用平均值通过 else if 语句打印字母等级。但我的程序只打印出 F 级的字母等级,即使我输入平均分数为 90 分,也不会打印任何其他等级。


琴弦等级;


    if (avg >= 90.0 ) {

        grade = "A";

    } else if (avg >=80.0) {

        grade = "B";

    } else if (avg >=70.0){

        grade = "C"

    } else if (avg >=60.0) {

        grade = "D";

    } else {

        grade = "F";

        System.out.println("Grade is  " + grade );

    }

}

}

我希望程序检查所有其他 if 语句,但如果平均分数为 60 或更高,它不会打印成绩语句,而只会显示平均值。


紫衣仙女
浏览 117回答 2
2回答

慕的地8271018

问题是你的 print 语句位于 else 块内,但你不想只在 else 时打印,你确实想始终打印,应该在 if-else 块之外。if(A){   ....// here you are when A is true } else if(B){   .... //here you are when A is false and B is true } else {   .... //here you will be when A and B are false } System.out.println("grade is:"+ grade); //here you are outside the else block so It does not depend on A nor on B value

一只萌萌小番薯

您必须分两步完成,因为这里仅在一种情况下打印:检查属于哪个范围avg并设置等级打印成绩if (avg >= 90.0) {     grade = "A"; } else if (avg >= 80.0) {     grade = "B"; } else if (avg >= 70.0) {     grade = "C"; } else if (avg >= 60.0) {     grade = "D"; } else {     grade = "F"; } System.out.println("Grade is  " + grade);另外,对于范围问题,我刚刚发现NavigableMap可以像这样使用NavigableMap<Double, String> map = new TreeMap<>(); map.put(0.0, "F"); map.put(60.0, "D"); map.put(70.0, "C"); map.put(80.0, "B"); map.put(90.0, "A"); System.out.println("Grade is " + map.floorEntry(avg).getValue());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java