0

我正在做一个项目,我必须进行测试以确保某些代码能够满足用户的期望。我唯一要做的就是为 GetCourseByCourseID 编写代码。其他一切都给了我。我已经编写了代码并运行了程序。程序运行,但不显示任何内容。我需要做什么?

public class Course {       
public Course(String id, String title, int creditHours, String description, String prerequisiteCourse)
    {
        this.CourseID = id;
        this.CourseTitle = title;
        this.CreditHours = creditHours;
        this.Description = description;
        this.PrerequisiteCourse = prerequisiteCourse;
    }


    public String CourseID;
    public String CourseTitle;
    public int CreditHours;
    public String Description;
    public String PrerequisiteCourse;
}


public class CourseList {
public Course[] CourseArray =
    {
    new Course ("CIS 400", "OO Analysis & Design", 4, "Important class", "CIS 110") ,
    new Course ("CIS 150A" , "VB.NET Programming", 4, "Good Introduction to programming", "CIS 100") ,
    new Course ("CIS 150B", "C# Programming with labs", 4, "Follow-up to CIS 100", "CIS 100")
    };


public Course GetCourseByCourseID(String id)
{
    for (Course course : CourseArray)
        if (course.CourseID == id)
            return course;
        return null;
}
}


public class CourseListTest {
    public static void main(String[] args)
{
    GetCourseByCourseIDTestWhenCourseExists();
    GetCourseByCourseIDTestWhenCourseDoesNotExist();
}


public static void GetCourseByCourseIDTestWhenCourseExists()
{

    CourseList myCourseList = new CourseList();
    Course myCourse = myCourseList.GetCourseByCourseID("CIS 400");
    if (myCourse.CourseID != "CIS 400")
        System.out.println("ERROR - GetCourseByCourseIDTestWhenCourseExists(): Returned CourseID Not equal (CIS 400)");
}

public static void GetCourseByCourseIDTestWhenCourseDoesNotExist()
{

    CourseList myCourseList = new CourseList();
    Course myCourse = myCourseList.GetCourseByCourseID("CIS 101");
    if (myCourse != null)
        System.out.println("ERROR - GetCourseByCourseIDTestWhenCourseDoesNotExist(): should have returned null");
}
}

这是为了上课。我问我的教授为什么它没有出现,他说他不熟悉 Java,我应该使用 Visual Basic。我个人讨厌visual basic(在之前的课程中使用它的经验很糟糕),我很想知道它在java中是如何工作的!我到处找了2个小时,没有找到任何东西!请帮忙!

4

3 回答 3

0

您的问题之一是 line if (course.CourseID == id),它没有正确比较字符串。您需要使用equals,而不是==字符串比较,因为==只检查两个字符串是否是内存中的实际相同对象。

if (course.CourseID.equals(id))

这在如何比较 Java 中的字符串?

你有同样的问题,上面写着if (myCourse.CourseID != "CIS 400")

尝试修复这些问题,如果您的程序仍然无法运行,请发表评论。

于 2013-10-21T01:15:13.453 回答
0
course.CourseID == id

myCourse.CourseID != "CIS 400"

将这两行更改为:

course.CourseID.equals(id)

!myCourse.CourseID.equals("CIS 400")

看看你能不能得到你想要的。

基本上,您想使用String#equals来检查字符串是否相等,而不是使用==.

于 2013-10-21T01:15:59.173 回答
-1
public Course GetCourseByCourseID(String id){
    for (Course course : CourseArray){
        if (course.CourseID.equals(id)){
            return course;
        }
    }
    return null;
}

您正在做的是在您可以遍历其他课程之前在第一门课程中返回 null 。

于 2013-10-21T01:17:19.250 回答