【发布时间】:2018-05-11 21:56:22
【问题描述】:
我正在用 java 制作一个哈希表。 在搜索功能中,我在 IF 语句中进行了一些比较。但它没有做任何比较。
这是我的代码的一部分。
while (table[pos]!=null) {
if (table[pos]==key) {
System.out.println("SEARCH "+key+" at INDEX "+home);
return;
}
else {pos=h(home+p(i));
i++;
}
}
System.out.println("Failed to find "+key+".");
return;
}
即使 table[pos] 和 key 相同,它也不起作用! 但我将非常简单的分配变量添加到另一个变量。这行得通!我不知道为什么它有效。我想知道xD
while (table[pos]!=null) {
int x = table[pos];
if (x==key) {
System.out.println("SEARCH "+key+" at INDEX "+home);
return;
}
else {pos=h(home+p(i));
i++;
}
}
System.out.println("Failed to find "+key+".");
return;
}
【问题讨论】:
-
您可能需要包含一个MCVE,以便我们现在知道您的确切问题是什么(目前似乎不清楚),包括输入、实际输出和预期输出以及一个演示的小型可执行示例问题本身。正确的代码格式也有助于更好地识别问题:)
-
“它没有做任何比较”是什么意思?逐行调试时发生了什么?
标签: java if-statement comparison assign