将变量设置为if语句中的值

Eri*_*ric 1 java if-statement

static int findPerson(String n, int NP, Friend[] giftGivers){

    int index = 0;

    for (int i = 0; i < NP; i++){
    if (giftGivers[i].name == n){
            index = i;
    }
    }

    return index;
}
Run Code Online (Sandbox Code Playgroud)

我在Java中有这个代码,用于搜索一个Friends数组的方法,以查找具有由String n输入的名称的人的索引号.但是我发现索引号没有设置为应该的索引号.是因为它在if语句中吗?

gef*_*fei 8

if (giftGivers[i].name == n) 是错的,使用 if (giftGivers[i].name.equals(n))

顺便说一句,没有必要使用NP.这是C风格,在Java中没有必要(实际上,非常危险).代替

for (int i = 0; i < NP; i++),

说啊 for (int i = 0; i < giftGivers.length; i++)