java报错是什么原因

importjava.util.Scanner;importjava.util.Scanner.*;publicclasslibrarytest{staticinti=0... import java.util.Scanner;
import java.util.Scanner.*;
public class librarytest {
static int i=0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
A a=new A();
a.dy();
String books[]=new String[]{"《数学书》","《语文书》","《英语书》","《物理书》","《生物书》","《地理书》","《政治书》","《历史书》"};
for(int i=0;i<=7;i++){
System.out.print(books[i]);
}
String message=sc.nextLine();
while(i<=7){
if(books[i](message)){

}
System.out.println("--------------搜索结果--------------");
}
}
class A{
void dy(){
System.out.println("欢迎光临图书馆");
System.out.println("请问您需要借哪本书?");
System.out.println("--------------可借书如下表--------------");

}
}
}
运行后报错类型不匹配:不能从 String 转换为 boolean
标记“]”上有语法错误,在此标记之后应为 赋值操作符
大家看看是什么原因谢谢了!
展开
 我来答
百度网友8d9d8c6
2018-07-25 · TA获得超过1681个赞
知道小有建树答主
回答量:315
采纳率:82%
帮助的人:146万
展开全部

你这个代码不对,而且逻辑也有问题。

代码问题我给你纠正,逻辑你自己再思考思考。

  1. books[i](message)这里代码不对,而且也不能产生Boolean值给if使用。

  2. A a=new A();  A类是librarytest类的内部类,不能在静态方法中调用该内部类,你应该指定该内部类为静态内部类,或者将A类放到librarytest类的外面。

第一个是语法错误,第二个是对象的使用错误。当然还有,你的while(i<=7)会无限循环。我猜你是想

while(i<=7){
if(books[i].equals(message)){
i++;
}

百度网友7e8d22c
2018-07-25 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:79
采纳率:77%
帮助的人:47.2万
展开全部

这个是要判断输入的内容在不在这个数组里吧?

if(books[i].equalsIgnoreCase(message)){

//这个判断里如果是相等的,需要跳出循环break掉吧

其次,这个while循环是死循环吧,定义的i需要自增的?

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
粉红顽皮蛇tz
2018-07-25 · TA获得超过467个赞
知道小有建树答主
回答量:419
采纳率:85%
帮助的人:154万
展开全部
if(books[i](message))
这句话有问题
不知道你这是什么写法,要判断什么
字符串数组取出来的值 是字符串 不是boolean类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式