我正在使用java进行练习,首先使用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);
}
}
答案 0 :(得分:2)
大多数编程语言使用单个等号=
作为赋值运算符。你要做的是比较两个数字,它使用双等号==
。
因此,实际上,您的代码尝试使用值0
分配计数,然后检查值是true
还是false
。由于赋值操作的结果既不是true
也不是false
,它会抛出错误。
正如其他人所说,使用count == 0
。
答案 1 :(得分:1)
尝试..出来放
if (refNumber.length() == 0){
System.out.println("zzz");
}
答案 2 :(得分:0)
使用此:
if (count == 0){
....
}
'='是赋值运算符,'=='是比较运算符
答案 3 :(得分:0)
应该是
if(count == 0)
在你的代码中,就像你在if子句中分配0而不能发生,因为它需要一个基于条件的布尔值。所以在这里你应该检查count是否等于(使用相等运算符==),如果它们相等则返回true,否则返回false。
答案 4 :(得分:0)
count=0
代表作业,而count==0
代表比较。