为什么我的代码不在for循环(Java)上请求用户输入

为什么我的代码不在for循环(Java)上请求用户输入,java,for-loop,user-input,Java,For Loop,User Input,我无法在for循环中获得用户输入,我不知道为什么。我对java相当陌生,所以请原谅我的马虎。我发布了我的全部代码,因为我根本不知道问题出在哪里 package grade.average.calculator; import java.util.Scanner; @SuppressWarnings("empty-statement") public class GradeAverageCalculator { /** * @p

我无法在for循环中获得用户输入,我不知道为什么。我对java相当陌生,所以请原谅我的马虎。我发布了我的全部代码,因为我根本不知道问题出在哪里

    package grade.average.calculator;


import java.util.Scanner;
        
@SuppressWarnings("empty-statement")
public class GradeAverageCalculator {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
       Scanner student = new Scanner(System.in);
            System.out.println("Please enter your name: ");
       String person;
            person = student.nextLine();
       Scanner muid = new Scanner(System.in);
            System.out.println("Please enter your MUID: ");
       String id;
            id = muid.nextLine();
    }
    int grades[]= new int[3];
    int i;
    float total=0, avg;
    Scanner marks = new Scanner(System.in);
    {
    for(i=0;i<3;i++){
        System.out.print("Enter Grades of Subject"+(i+1)+":");
        grades[i] = marks.nextInt();
        total = total + grades[i];
}
    marks.close();
    avg = total/3;
package grade.average.calculator;
导入java.util.Scanner;
@SuppressWarnings(“空语句”)
公共类成绩平均计算器{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
//此处的TODO代码应用程序逻辑
扫描器学员=新扫描器(System.in);
System.out.println(“请输入您的姓名:”);
线人;
person=student.nextLine();
扫描仪muid=新扫描仪(System.in);
System.out.println(“请输入您的MUID:”);
字符串id;
id=muid.nextLine();
}
整数等级[]=新整数[3];
int i;
浮动总额=0,平均值;
扫描仪标记=新扫描仪(System.in);
{

对于(i=0;i,您的逻辑超出了主类。 它不是可访问的代码,因此无法执行

因此,最简单的方法是:

publicstaticvoidmain(字符串[]args){
//此处的TODO代码应用程序逻辑
扫描器学员=新扫描器(System.in);
System.out.println(“请输入您的姓名:”);
线人;
person=student.nextLine();
扫描仪muid=新扫描仪(System.in);
System.out.println(“请输入您的MUID:”);
字符串id;
id=muid.nextLine();
方法();
}
公共静态无效方法(){
整数等级[]=新整数[3];
int i;
浮动总额=0,平均值;
扫描仪标记=新扫描仪(System.in);
{
对于(i=0;i<3;i++){
系统输出打印(“输入科目成绩”+(i+1)+“:”;
等级[i]=马克斯.奈克斯汀();
总数=总数+等级[i];
}
marks.close();
平均值=总数/3;
}
}

为什么要基于System.in创建多个扫描仪?您可以使用同一个扫描仪进行所有操作。但是等级和总数应该仍然有效。您的缩进不一致,因此很难判断,但我认为您有任何方法之外的代码。