1

私は、自己レビューのためにJavaを使用して最初にオブジェクトからの演習に取り組んでいます。私が問題を抱えている演習の部分は、refNumber 文字列の長さを見つけるように求められる場所です。文字列の長さがゼロの場合は、「zzz」という行を出力します。ローカル変数を作成し、それを refNumber.length() に等しくすることで、これを実行しようとしました。ただし、私の条件文で bluejay は、互換性のない型があることを示しています。うーん、助けてください。前もって感謝します。

class Book
{
// The fields.
private String author;
private String title;
private int pages;
private String refNumber;

/**
 * Set the author and title fields when this object
 * is constructed.
 */
public Book(String bookAuthor, String bookTitle, int numberOfPages)
{
    author = bookAuthor;
    title = bookTitle;
    numberOfPages = pages;
    refNumber = "";
}

public String getAuthor()
{
    return author;
}

public String getTitle()
{
    return title;
}

public int getPages()
{
    return pages;
}

public String getRefNumber()
{
    return refNumber;
}

public void setRefNumber(String ref){
    ref = refNumber;
}

public void printTitle() {
    System.out.println("Book desciption: " + title);

}

public void printAuthor() {
    System.out.print(" by " + author);

}

public void printPages(){
    System.out.println("Pages: " + pages);
}

public void printRef(){
    int count = refNumber.length();
    if (count = 0){                        //incompatible type wtf?
    System.out.println("zzz");
    }
    else {
        System.out.println("Reference Number: " + referenceNumber);
    }

}
4

5 に答える 5

2

ほとんどのプログラミング言語は、単一の等号=を代入演算子として使用します。あなたがやろうとしているのは、二重等号を使用する 2 つの数値を比較することです==

したがって、事実上、コードは count に value を代入し0、値がtrueor かどうかを確認しようとしていますfalse。また、代入演算の結果はどちらtrueでもないfalseため、エラーがスローされます。

他の人が言っているように、を使用してcount == 0ください。

于 2013-02-28T06:51:31.540 に答える
1

試してみてください。

 if (refNumber.length() == 0){                        
    System.out.println("zzz");
    }
于 2013-02-28T06:50:59.730 に答える
0

これを使って:

if (count == 0){ 
    ....
}

「=」は代入演算子で「==」は比較演算子です

于 2013-02-28T06:50:24.417 に答える
0

そのはず

if(count == 0)

コードでは、条件に基づいてブール値が必要なため、 if 句では発生しない count に 0 を割り当てているようです。したがって、ここでは count が等しいかどうかを確認し (等値演算子 == を使用)、等しい場合は true、そうでない場合は false を返します。

于 2013-02-28T06:50:36.600 に答える