Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:为什么不是';是否返回更新后的值?_Java - Fatal编程技术网

Java:为什么不是';是否返回更新后的值?

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总是返回1。但是,在for循环中,它返回递增的计数值。这真的很奇怪,我认为在for循环之外声明一个局部变量count应该可以……使用
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())