I’m trying to get back into Java – it’s been about 5 years since I studied the basics and I’ve been lost in the .Net world since.
I’m trying to create a student class below, however the for loop for reading in the integers into the array gets stuck when the program runs.
From my previous knowledge, and from research, the loop seems to be constructed properly and I can’t seem to figure out where it’s going wrong.
I’m sure it’s something silly – as always but I was wondering if someone could point me in the right direction? 🙂
import java.util.*;
import acm.io.*;
public class Student {
// instance variables
private int studNumber; //Must be between (and including) 0 and 99999999. If input value invalid default to 0.
private String studName;
private int marks[];
/*
* Constructor Student Class
*/
public Student(int studNumber, String StudName, int marks[]) {
// initialise instance variables
if (studNumber >=0 && studNumber<= 99999999) {
this.studNumber= studNumber;
} else {
this.studNumber = 0; //default value
}
this.studName= StudName; // no validation
this.marks = marks;
IOConsole console = new IOConsole();
for (int i = 0; i <= 6; i++) {
marks[i] = console.readInt();
}
}
}
I believe the problem lies in the
readInt()part. It’s unusual to read input from theConsolein a constructor for initializing the attributes, delegate that task to another part of your code and move it outside the constructor.