java为什么没有打印正确的数组值?
我试图只使用嵌套if-else打印rollNumber数组的标记。然而,我得到的结果是:
111 Honors
111 First Division
333 Fail
而输出应该是
111 Honors
222 First Division
333 Fail
444 Second Division
我哪里做错了?我写的代码如下:
public class JavaApplication53 {
/**
* @param args the command line arguments
*/
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");
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");
}
}
}
}
# 1 楼答案
我不知道预期的行为是什么,但这显然是一个问题:
如果标记[i]>;79永远是>;59,所以else将永远不会被输入
编辑:您可以使用类创建域模型,而不是使用数组并使用索引i从中获取相应的值:
(省略了getter和setter)
这可以澄清代码的含义
编辑2:然后你可以这样做