gpt4 book ai didi

java - 为什么无法获取指定条件的数组索引?

转载 作者:行者123 更新时间:2023-12-01 16:49:34 24 4
gpt4 key购买 nike

public class Book {

private String Author;
private Book[]Details;

public void setAuthor()
{

}
public String getAuthor()
{
return Author;
}
//Author already set for Array

public int getviewInfo()
{
System.out.println("Enter author");
Scanner kb= new Scanner(System.in);
int index=0;
String author= kb.next();
for(int i=0 ;i<Details.length; i++)
{
if((Details[i].getAuthor()).equals(author)); //compare both author
{
index=i;
//loop enters here even when author input not equal to getAuthor, why??
System.out.println("SAME author"); //& will continue to run this i times
}
}
System.out.println("sameindex "+index); //therefore index is wrong
return index;
}

我有一个方法getviewInfo(),它假设获取数组对象的索引位置以便稍后打印。它提示用户输入一个字符串“author”,将其与之前为数组设置的另一个字符串进行比较是否相等。

问题是,在 for 循环内,即使作者输入的字符串与 Details[i].getAuthor() 中的其他字符串不同,也会输入用于比较这两个字符串的 if 语句,我得到的索引是错误的。

为什么 if 语句不能正常工作?有人可以告诉我我做错了什么吗?非常感谢

最佳答案

看来您的问题出在:if((Details[i].getAuthor()).equals(author));

由于 if 语句后面有一个不需要的分号,所以会发生以下情况:

  1. 该声明经过检查和评估。
  2. “;”标记语句结束
  3. 始终执行以下代码块中的代码。

尝试删除“;”然后再试一次。

关于java - 为什么无法获取指定条件的数组索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43222583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com