这是我要做的:
显示每个级别的学生人数(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作为数组。我使用标记是因为您在标记上循环播放。

07-24 16:06