Java 专门使用for循环计数
我正在制定一种方法,在这种方法中,一个班级的学生人数最多。我的方法将每个学生添加到一个新的类中,并重复它自己Java 专门使用for循环计数,java,Java,我正在制定一种方法,在这种方法中,一个班级的学生人数最多。我的方法将每个学生添加到一个新的类中,并重复它自己 int count = 0; for (int i = 0; i < totalStudents.length; i++) { //amounts of students totalStudents[i] = new Student(startingStudentNumber, classes[count], randomGrade(1.0,
int count = 0;
for (int i = 0; i < totalStudents.length; i++) { //amounts of students
totalStudents[i] = new Student(startingStudentNumber, classes[count], randomGrade(1.0, 10.0));
startingStudentNumber++;
count++;
if (count == classes.length) {
count = 0;
}
}
类别:
public Class(final String name, final int students) {
this.name = name;
this.students = students;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getStudents() {
return students;
}
public void setStudents(int students) {
this.students = students;
}
如果我理解正确,你可以这样做
int currentClass = 0;
int count = 0;
for (int i = 0; i < totalStudents.length; i++) { //amounts of students
totalStudents[i] = new Student(startingStudentNumber, classes[count], randomGrade(1.0, 10.0));
startingStudentNumber++;
count++;
if (currentClass >= classes.length) {
//ran out of room
break;
}
if (count == classes[currentClass].maxStudents){
count = 0;
currentClass++;
}
}
int currentClass=0;
整数计数=0;
对于(int i=0;i=classes.length){
//房间用光了
打破
}
如果(计数==类[currentClass].maxStudents){
计数=0;
currentClass++;
}
}
也许会有用。如果我正确理解了问题,请告诉我是否有问题。如果我正确理解了问题,上述解决方案似乎是正确的,但是还有一个更改需要替换
totalStudents[i] = new Student(startingStudentNumber, classes[count], randomGrade(1.0, 10.0));
与
然而,这会在进入下一节课之前让每一节课都充满学生,而不是将学生均匀地分布在每一节课上。如果您正在查找后者,则循环将更加复杂,最简单的方法是将指定的学生人数存储在课堂的某个位置,以便您可以稍后参考,并在排满的学生人数已满的情况下跳到下一节课。首先,不要声明类
final
的students变量,那么您必须调用Setter
并将一个变量添加到类中的Getter
int count = 0;
for (int i = 0; i < totalStudents.length; i++) { //amounts of students
totalStudents[i] = new Student(startingStudentNumber, classes[count], randomGrade(1.0, 10.0));
class[count].setStudents(class[count].getStudents + 1);
startingStudentNumber++;
count++;
if (count == classes.length) {
count = 0;
}
}
并将其添加到您的代码中,如:
class[count].addStudent();
编辑1:
我如何知道一个班级是否已满,以及我是否应该添加任何学生
学生:
private final maxStudents = 25; // For example
要将每个学生添加到不同的班级(尽可能在所有班级中均匀分布,而不是先填充每个班级),您应该向班级添加另一个名为CurrentStudents
或类似的变量,以保存当前分配给该班级的学生人数
此变量可以从分配学生的循环或学生类构造函数中更新
然后紧接着count++代码>添加
while (classes[count].getStudents()==classes[count].getCurrentStudents()) {
count++;
if (count==classes.length) count=0; }
这将跳过任何已满的课程。当然,您还必须添加一项规定,以确保所有班级中的学生人数不超过空间,否则,试图找到一个空班级时,它将陷入无限循环。一个学生被添加一次,因为您每次循环都会创建一个新学生。。。你能重新措辞你的问题吗,因为它不那么容易理解…@YassinHajaj我有一大批学生需要加入课堂。每个学生都被添加到不同的班级。(学生1到a班,学生2到b班)。现在,我想数一数已经加入到a班的学生人数。如果每个学生都加入到不同的班级,那么加入到每个班级的学生人数将始终保持不变1@MrWiggles当它到达所有类的末尾时,它返回到索引0并向类a添加一个新学生。直到没有学生离开。你必须在你的学生班级中进行更改,请同时发布这两个班级,好吗?每个学生都被添加到一个不同的班级(学生1到a,学生2到b,等等),如果他们都被添加到一个班级,然后再添加到下一个班级,情况会是这样的。我希望你现在能更好地理解这个问题。这应该是你所说答案下的一个注释。应该是,但我还不能在其他答案中添加注释。我知道一个班级有多少学生,但如果我想将我的班级人数限制在X个学生,该怎么办?如果这个班已经满了,我该如何“推”当前的学生到下一个班。在这种情况下,不会有任何学生。我怎样才能将当前学生添加到下一个类中?你的意思是使用getStudents()
来获得最大数量的学生吗?这似乎是你设计类的方式,因为你声明这是最终的,是的,这是我的假设。
class[count].addStudent();
int count = 0;
for (int i = 0; i < totalStudents.length; i++) { //amounts of students
if (class[count].isFull()){
--i;
} else {
totalStudents[i] = new Student(startingStudentNumber, classes[count], randomGrade(1.0, 10.0));
class[count].setStudents(class[count].getStudents + 1);
startingStudentNumber++;
}
count++;
if (count == classes.length) {
count = 0;
}
}
public boolean isFull(){
return this.students >= maxStudents;
}
private final maxStudents = 25; // For example
while (classes[count].getStudents()==classes[count].getCurrentStudents()) {
count++;
if (count==classes.length) count=0; }