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

問題の 1 つは、文字列if (course.CourseID == id)を正しく比較していない行です。2 つの文字列がメモリ内の実際の同じオブジェクトであるかどうかを確認するだけなので、文字列比較で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"

これらの 2 行を次のように変更します。

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 に答える