Java:为什么不是';是否返回更新后的值?
count总是返回1。但是,在for循环中,它返回递增的计数值。这真的很奇怪,我认为在for循环之外声明一个局部变量count应该可以……使用Java:为什么不是';是否返回更新后的值?,java,Java,count总是返回1。但是,在for循环中,它返回递增的计数值。这真的很奇怪,我认为在for循环之外声明一个局部变量count应该可以……使用count很好——内部if语句可能永远不会为真 罪魁祸首很可能是 public static int getElementIdx (DOMElement elt) { int count = 1; for (DOMElement sib = (DOMElement) elt.getPreviousSibling();
count
很好——内部if语句可能永远不会为真
罪魁祸首很可能是
public static int getElementIdx (DOMElement elt) {
int count = 1;
for (DOMElement sib = (DOMElement) elt.getPreviousSibling();
sib != null;
sib = (DOMElement) sib.getPreviousSibling())
{
System.out.println("sib "
+ sib.getTagName () + " elt " + elt.getTagName ());
if (sib.ELEMENT_NODE == sib.getNodeType () &&
sib.getTagName () == elt.getTagName ()) {
System.out.println (count);
count++;
}
}
return count;
}
您需要使用equals()
检查字符串相等性:
count
用法很好——内部if语句可能永远不会为true
罪魁祸首很可能是
public static int getElementIdx (DOMElement elt) {
int count = 1;
for (DOMElement sib = (DOMElement) elt.getPreviousSibling();
sib != null;
sib = (DOMElement) sib.getPreviousSibling())
{
System.out.println("sib "
+ sib.getTagName () + " elt " + elt.getTagName ());
if (sib.ELEMENT_NODE == sib.getNodeType () &&
sib.getTagName () == elt.getTagName ()) {
System.out.println (count);
count++;
}
}
return count;
}
您需要使用equals()
检查字符串相等性:
我想您对返回值的测试是错误的。代码是正确的。也许您在未发布的代码中做了一些错误的事情?我想您对返回值的测试是错误的。该代码很好。也许你在没有发布的代码中做错了什么?
sib.getTagName().equals(elt.getTagName())