[英]Why isn't this simple Java for loop working?
我试图弄清楚为什么我的测试程序在主方法中的实例化 object 中被调用时似乎完全跳过了公共 class 方法。 请参阅下面的“测试”class 和“主要”class,其中主要方法创建 object 并尝试调用所有三个 ZA2F22ED4F8EBC26BDZ 方法
主class:
class Main {
public static void main(String[] args) {
Test test = new Test();
test.getNumOfStudents();
test.getGrades();
System.out.println("The average grade is " + test.calcAvgGrade() + ".");
}
}
测试 Class:
import java.util.*;
public class Test {
public int numOfStudents;
public double averageGrade;
public double totalGrade;
public Scanner input = new Scanner(System.in);
public void getNumOfStudents() {
System.out.println("How many students are enrolled?");
this.numOfStudents = input.nextInt();
return;
}
public void getGrades() {
for(int i = 1; i == this.numOfStudents; i++) {
System.out.print("Enter the grade of student # " + i + ":");
this.totalGrade = input.nextDouble() + this.totalGrade;
System.out.println("");
}
return;
}
public double calcAvgGrade() {
this.averageGrade = this.totalGrade / this.numOfStudents;
return this.averageGrade;
}
}
当您运行 for 循环时,您的条件是i==this.numOfStudents
。 我认为您正在努力弥补this.numOfStudents
。
所以要解决这个问题,你将有一个小于或等于。 所以你会有i<=this.numOfStudents
,因为现在你的 for 循环说只在i==this.numOfStudents
时运行。
在方法getGrades
中,for 循环应该是:
for(int i = 1; i <= this.numOfStudents; i++) {
System.out.print("Enter the grade of student # " + i + ":");
this.totalGrade = input.nextDouble() + this.totalGrade;
System.out.println("");
}
由于i == this.numOfStudents
,您遇到了问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.