数组无法调用scanner

/*需求
 5个学生成绩,56,74,89,41,89
从键盘读入学生成绩,找出最高分,并输出学生成绩等级
成绩>= 最高分-10,等级为A
成绩>= 最高分-20,等级为B
成绩>= 最高分-30,等级为C
其余,等级为D
*/
import java.util.Scanner;
 public class Array3 {
    public static void main(String[]args) {
        Scanner scan=new Scanner(System.in);
        /*确定学生人数,既循环次数*/
        System.out.println("请输入学生人数");
        int num=scan.nextInt();
        /*遍历学生成绩*/
        int[]score=new int[num];
        System.out.println("请输入"+num+"个学生成绩");
        for(int i=0;i<score.length;i++);{
            score[i]=scanner.nextInt();   这里显示有两个错误:scanner can not be resolved和
 i cannot be resolved to a variable

        }
        
        /*找出最高分*/
            int scoremax=0;
            for(int i=0;i<score.length;i++)
                 {    if(scoremax<score[i])
                     scoremax=score[i];
            }
            /*换算等级*/
            char level;
            for(int i=0;i<score.length;i++) {
            if (scoremax-score[i]<=10) {
                char grade='A';
                        }
            else if(scoremax-score[i]<=20){
                char grade='B';
            }
            else if(scoremax-score[i]<=30)
            {char grade='C';}
            }

              else     这里显示有一个错误:syntax error on token"else",delete this token.
               {char grade='D';}
            System.out.println("学生"+i+"成绩为"+score[i]+",等级为:"+level);这里显示有一个错误:
 i cannot be resolved to a variable

    }
    }


请问出错的原因是?以及如何修改?

for(int i=0;i<score.length;i++);{
            score[i]=scanner.nextInt();   这里显示有两个错误:scanner can not be resolved和
 i cannot be resolved to a variable

        }

你的for循环后面多了分号,

 

下面的错误是因为你的错误的那句话没有在你的for循环大括号内部

public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        /*确定学生人数,既循环次数*/
        System.out.println("请输入学生人数");
        int num = scan.nextInt();
        /*遍历学生成绩*/
        int[] score = new int[num];

        for(int i = 0; i < score.length; i++){
            System.out.println("请输入" + (i + 1) + "个学生成绩");
            score[i] = scan.nextInt();
        }

        /*找出最高分*/
        int scoremax=0;
        for(int i=0;i<score.length;i++)
        {
            if(scoremax<score[i]){
                scoremax=score[i];
            }
        }
        /*换算等级*/
        char level = 1;
        for(int i=0;i<score.length;i++) {
            if (scoremax-score[i]<=10) {
                level='A';
            }else if(scoremax-score[i]<=20){
                level='B';
            }
            else if(scoremax-score[i]<=30){
                level='C';
            }else {
                level='D';
            }
            System.out.println("学生"+i+"成绩为"+score[i]+",等级为:" + level);
        }
    }