Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Iterator_Println - Fatal编程技术网

Java 迭代器循环的奇怪打印行为

Java 迭代器循环的奇怪打印行为,java,loops,iterator,println,Java,Loops,Iterator,Println,目前我正在为一个使用迭代器(BFS)检查连接性的图构建一个程序,但由于某种原因,每当我试图打印它时,检查连接性的方法都会以一种奇怪的方式运行 这是目前代码的外观: public boolean isConnected() { for(int i=0;i<numVertices;i++) { Iterator<T> connection = iteratorBFS(i); int count = 0;

目前我正在为一个使用迭代器(BFS)检查连接性的图构建一个程序,但由于某种原因,每当我试图打印它时,检查连接性的方法都会以一种奇怪的方式运行

这是目前代码的外观:

public boolean isConnected()    {

        for(int i=0;i<numVertices;i++)  {
            Iterator<T> connection = iteratorBFS(i);
            int count = 0;
            while(connection.hasNext()) {
                count++;
                System.out.println(connection.next());
            }
            if(count!=numVertices)  {
                System.out.println("The graph is disjoint.");
                return false;
            }
        }
        System.out.println("The graph is connected.");
        return true;

    }
它打印顶点的唯一原因是查看迭代器是否正常工作,显然是这样。然而,只要我注释掉System.out.println(connection.next),就不会打印任何内容。没有错误消息,什么也没有。我甚至尝试打印出驱动程序中直接连接的graph.isConnected,但它没有显示任何内容。在此之前,我尝试让它根据布尔结果的值在main方法中打印消息,但这也不起作用

我唯一想要打印出来的是最后一行,它表示图形是否连接。不幸的是,考虑到该方法现在的行为,如果我在中间循环注释测试行,则不会打印任何内容。 我做错什么了吗?为什么该方法的行为是这样的?

如果您注释掉:

   System.out.println(connection.next());
您仍然需要这样做:

   connection.next();

否则连接将永远无法升级。

您必须调用。下一步使用迭代器。删除system.out并保持连接。下一步()
   connection.next();