0

インターフェースのコードは既に書きましたが、エラーです。2 つの家具オブジェクトの 2 つの価格を比較するにはどうすればよいですか? 私はif文でそれを正しくやっていますか? ステートメントは、returnシンボルが見つからないと言っています。どうすればこれを修正できますか?

public boolean IsCheaper(Furniture f)
{
    if (f instanceof Furniture)
    {
         boolean status;
         if (price > f.getPrice())
             status = true;
         else if (price < f.getPrice())
             status = false;

    }
    return status;
}
4

2 に答える 2

1
   public boolean IsCheaper(Furniture f)
    {
      boolean status= false; // or  true
      if (f instanceof Furniture) // if(f!=null) as suggested by a comment
       {

        if (price > f.getPrice())
            status = true;
        else if (price < f.getPrice())
            status = false;

       }
       return status;
     }

外部で必要なため、ステータスは if ブロックの外部で宣言する必要があります。

また、メソッドがFurnitureの親クラスを受け入れている場合にのみ、ifチェック、instanceofチェックが必要です

于 2012-12-07T04:15:33.780 に答える
0

変数のスコープはboolean status;if ブロックだけですif (f instanceof Furniture)

if ブロックの外側に return ステートメントがあるため、if ブロックが完了するとすぐに、変数statusがスコープ外になるため使用できなくなります。

したがって、コンパイラはそれを見つけることができないため、「シンボルが見つかりません:ステータス」と表示されます。

したがって、ステータス変数をif (f instanceof Furniture)ブロック外で宣言します。

于 2012-12-07T04:19:49.517 に答える