这是我要做的:
显示每个级别的学生人数(R, 1, 2, 3, 4).
Level R (mark < 50)
Level 1 ( (mark >= 50) && (mark < 60) )
Level 2 ( (mark >= 60) && (mark < 70) )
Level 3 ( (mark >= 70) && (mark < 80) )
Level 4 (mark >= 80).
这就是我所拥有的:
int L0=0,L1=0,L2=0,L3=0,L4=0;
int acceptmarks=0;
acceptmarks=Integer.parseInt(marksinput.getText());
for(int i=0; i < marks.size(); i++){
if (acceptmarks<50){
L0=L0+1;}
else if ((acceptmarks>=50) && (acceptmarks<60)){
L1=L1+1;}
else if ((acceptmarks>=60) && (acceptmarks<70)){
L2=L2+1;}
else if ((acceptmarks>=70) && (acceptmarks < 80)){
L3=L3+1;}
else if ((acceptmarks>=80) && (acceptmarks < 100)){
L4=L4+1;}}
int[] level= new int [5];
level[0]=L0;
level[1]=L1;
level[2]=L2;
level[3]=L3;
level[4]=L4;
analyzeoutput.setText("Numbers at Level 4:" + level[4]+ "\nNumbers at Level 3:" +
level[3]+ "\nNumbers at Level 2:" + level[2]+ "\nNumbers at Level 1:" + level[1]+ "\nNumbers at Level R:" + level[0]);
我遇到的问题是,它不能为每个级别显示正确的学生人数。
这是发生了什么:
例如我输入了4个标记:
45, 66, 84, 89.
正确答案应该是R级1分,2级1分和4级2分。但是我的程序只计算最后的分数。由于最后一个标记为89(级别4),因此它显示所有标记的级别均为4。
非常感谢您的帮助,在此先感谢您。
编辑:我想通了。我只需要在if语句中用mark.get(i)替换acceptmarks。
最佳答案
int L0=0,L1=0,L2=0,L3=0,L4=0;
List<Integer> marks = Arrays.asList(45, 66, 84, 89);
for(int i = 0; i < marks.size(); i++){
if (marks.get(i)<50){
L0=L0+1;}
else if ((marks.get(i)>=50) && (marks.get(i)<60)){
L1=L1+1;}
else if ((marks.get(i)>=60) && (marks.get(i)<70)){
L2=L2+1;}
else if ((marks.get(i)>=70) && (marks.get(i) < 80)){
L3=L3+1;}
else if ((marks.get(i)>=80) && (marks.get(i)< 100)){
L4=L4+1;}}
int[] level= new int [5];
level[0]=L0;
level[1]=L1;
level[2]=L2;
level[3]=L3;
level[4]=L4;
final JLabel analyzeoutput = new JLabel();
analyzeoutput.setText("Numbers at Level 4:" + level[4]+ "\nNumbers at Level 3:" +
level[3]+ "\nNumbers at Level 2:" + level[2]+ "\nNumbers at Level 1:" + level[1]+ "\nNumbers at Level R:" + level[0]);
}
注意:如果可以将要获取的所有输入都放入“ acceptmarks”中,则可以标记数组。这将起作用。
AcceptMarks是一个整数,因此它将仅包含您给定的最后一个输入。如代码片段所示,将AcceptMarks作为列表或使用mark作为数组。我使用标记是因为您在标记上循环播放。