0

私のコードでは、配列の最初の要素 CIS 400 にアクセスし、それが指定された文字列と等しいかどうかを確認したいのですが、配列オブジェクト全体にアクセスしています。誰でもそれを行う方法の手がかりを教えてもらえますか..ありがとう...

 public class Course1 {
      public static void main(String[] args){

         int check=   GetCourseByCourseID("CIS 400");

         if (check==0){
           System.out.print("Don't match");
         }

     }

    private static  int GetCourseByCourseID(String CourseID) {

       for ( int i = 0; i < course.CourseArray.length; i++ ){ 
          if ( CourseID.equals(course.CourseArray[i] )){                   
               return 1;
          }
          else {
              System.out.print(course.CourseArray[1]);  
              return 0;

         }
        // ToDO

       }
       return 2;

   }

   Course1(String string, String string2, int i, String string3, String string4){ 
        CourseID = "CIS 400"; 
        CourseTitle = ""; 
        CreditHours = 0; 
        Description = ""; 
        PrerequisiteCourseID = "";

       };

    }


    class course {
      static Course1[] CourseArray ={

        new Course1 ("CIS 400", "OO Analysis & Design", 4, "Important class", "CIS 110"),

        new Course1 ("CIS 150A" , "VB.NET Programming", 4, "Good Introduction to     programming", "CIS 100") ,

        new Course1 ("CIS 150B", "C# Programming with labs", 4, "Follow-up to CIS 100", "CIS 100")

      };
   }
4

4 に答える 4

0
 10    private static  int GetCourseByCourseID(String CourseID) {
 11   
 12          for ( int i = 0; i < course.CourseArray.length; i++ ){ 
 13             if ( CourseID.equals(course.CourseArray[i] )){                   
 14                  return 1;
 15             }
 16             else {
 17                 System.out.print(course.CourseArray[1]);  
 18                 return 0;
 19            }
 20          }
 21          return 2;
 22      }

このコードにはほとんど問題がありません。

13 行目: パラメータcourseIDをオブジェクト全体と比較しCourse1ます。これは常に false を返します。

if12 行目: 戻ってelseブロックすると、ループは 1 回だけ実行されます。

17 行目: この行では、オブジェクト全体を position に出力し1ます。

以下に、分析できる潜在的な実装があります

private static Course1 findCourseByID(String id) {

    for(Course1 course : getCourses()) {
        if(id.equals(course.CourseID)) {
           return course;
        }
     }
     return null;
}
于 2013-10-18T13:52:05.913 に答える
0

個々の配列要素ではなく、配列全体を比較しています。If配列の最初の文字列を比較するには、条件を以下のようにする必要があります

if ( CourseID.equals(course.CourseArray[i].string ))

CourseArray[i]オブジェクトを返しCourse1ます。そのプロパティにアクセスするには、使用しますが、サンプルには表示されCourseArray[i].stringない宣言する必要があります。string

のコンストラクターを定義しましたCourse1が、クラス変数も定義し、コンストラクターを介して渡された値をクラス変数に割り当てる必要があります

于 2013-10-18T13:22:59.030 に答える