数组设置长度和存储信息

时间:2012-04-04 00:23:07

标签: java

这是作业。我正在尝试使用数组,这是第一个使用它们的项目。我的书展示了各种各样的例子,但是他们对例子进行编码的方式并没有对作业要求的内容做出任何公正。

我正在尝试编写一个程序,要求用户将学生输入系统。该程序首先询问您将输入多少,然后它将提示您输入名字,姓氏和分数。

我想用这部分代码完成的是询问用户他们将输入多少学生。代码行

    getStudentCount();

是一种收集该信息然后返回studentCount

的方法

我尝试将此代码编码到数组的长度将是用户输入的数字,但它不起作用,所以我想要求指导。理想情况下,如果这样做并且用户输入3,那么将提示您输入信息3次。如果用户输入0,则程序不会向您询问任何内容。

    public static void main(String[] args)
{

    System.out.println("Welcome to the Student Scores Application.");

    int studentCount = 1;

    getStudentCount();
    studentCount = sc.nextInt();

    String [] students = new String[studentCount];
    for (int i = 0; i < students.length; i++)
    {

        Student s = new Student();
        String firstName = getString("Enter first name: ");
        s.setFirstName(firstName);

        String lastName = getString("Enter last name: ");
        s.setLastName(lastName);

        int score = getScore("Enter score: ");
        s.setScore(score);


    }

}

我在程序中遇到的所有事情都在进行,直到我尝试编码

    String [] students = new String[studentCount];
    for (int i = 0; i < students.length; i++)

告诉我这样做的方式有问题。

此外,作业还要求我将信息存储在数组中。我不清楚如何调用它或我猜它存储....我有另一个类有setter和getters。这足以存储吗?我怎么称呼它? 这是家庭作业,所以任何指导都是值得赞赏的。 谢谢!

4 个答案:

答案 0 :(得分:4)

嗯,这至少是一个作业示例,显示了askee的一些工作(并且写得很好),所以这里有一些帮助:

您将studentCount设置为1,然后调用getStudentcount(),但从不将返回值赋给您的变量,因此该变量保持为1(尽管您之后用sc.nextInt()覆盖了它,这可能是{{1}}不是你想要的,如果你已经有一个很好的方法)。修复只是将方法的返回值赋给变量[1]

[1]是的我知道我不应该完全回答作业问题,但我真的认为没有办法只回答部分问题 - 但建议表示欢迎:)

答案 1 :(得分:3)

我的提示:

  1. 仔细查看您是如何计算学生数量的,以及您将其放在何处。你似乎以两种不同的方式得到了计数,这至多是多余的,可能是一个错误。

  2. 据推测,有一个堆栈跟踪。阅读!!

    堆栈跟踪将告诉您抛出了什么异常,它的诊断消息是什么,抛出的位置以及代码在问题发生时执行的位置。

  3. 如果您无法直观地了解正在发生的事情,请使用Java IDE的调试程序并单步执行该程序。


  4. 根据您的后续评论,没有堆栈跟踪。但如果有,你应该读它:-)

答案 2 :(得分:0)

我不理解你的行

getStudentCount();
studentCount = sc.nextInt();

如果getStudentCount()“返回”他们输入的数字(正如您在文中描述的那样),看起来你应该这样做

int studentCOunt = getStudentCount();

答案 3 :(得分:0)

我正在努力不为你完成你的作业,但请看下面的代码,看看如何做到这一点:

    /* Some Declarations You're Going to Need */
private static Scanner scan = new Scanner(System.in); //Private, only need it in here
public static Student[] students; //Public, access it from any class you may need

public static void main(String[] args) {
    System.out.println("Welcome to the Student Scores Application.");
    System.out.print("Amount of students:");
    int studentCount = scan.nextInt();
    students = new Student[studentCount];
    for (int i = 0; i < students.length; i++) {
        students[i] = new Student();

        System.out.print("Enter first name:");
        String firstName = scan.next();
        students[i].setFirstName(firstName);

        System.out.print("Enter last name:");
        String lastName = scan.next();
        students[i].setLastName(lastName);

        System.out.print("Enter score:");
        int score = scan.nextInt();
        students[i].setScore(score);
    }
    scan = null; //Done with scanner
}