Java使用嵌套if else遍历数组打印值不正确是什么原因?
问题错误点
- 分支逻辑位置错误:你将6079分、5059分的判断逻辑嵌套在了「分数>79」的判断分支内,只有分数超过79的学生才会执行这部分判断,分数在50~79区间的学生没有匹配的输出分支,所以222(75分)、444(58分)没有任何输出。
- 高分段重复输出:81分满足>79的条件打印Honors后,还会继续执行嵌套在内部的>59判断,81也满足该条件,所以额外多打印了一行First Division,导致111出现了两行输出。
修正后代码
public class JavaApplication53 { public static void main(String[] args) { int rollNumber[]={111, 222, 333, 444}; int marks[]={81, 75, 43, 58}; for(int i=0; i<rollNumber.length; i++) { if(marks[i]>49) { if(marks[i]>79) { System.out.println(rollNumber[i] + " Honors"); } else if(marks[i]>59){ System.out.println(rollNumber[i] + " First Division"); } else { System.out.println(rollNumber[i] + " Second Division"); } } else { System.out.println(rollNumber[i]+ " Fail"); } } } }
内容的提问来源于stack exchange,提问作者Konark Baggal
相关产品推荐
相关产品推荐

