1

我正在使用 java 进行 Objects 的练习以进行自我审查。我遇到问题的练习部分是它要求我找到 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

大多数编程语言使用单个等号=作为赋值运算符。您要做的是比较两个数字,它使用双等号==

因此,实际上,您的代码正在尝试使用 value 分配 count 0,然后检查 value 是否为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)

在您的代码中,就像您将 0 分配给 count ,这在 if 子句中不会发生,因为它需要一个基于条件的布尔值。所以在这里你应该检查 count 是否相等(使用相等运算符 == ),如果它们相等则返回 true,否则返回 false。

于 2013-02-28T06:50:36.600 回答
0

count=0代表分配,而count==0代表比较。

于 2013-02-28T07:06:59.620 回答