Was könnt ehier eine endlos-Schleife verursachen?



  • public final void checkTriangleStatus() {
    
            if (hasTriangles() != true) return;
            int rest = 3%triangles.size();
            while (rest > 0) {
                Point3D last = (Point3D) triangles.getLast();
                Point3D n = new Point3D(last.point.x++, last.point.y++, last.point.z++);
                triangles.add(n);
                rest = 3%triangles.size();
            }
            System.out.println("Triangles...OK");
    
        }
    

    Hi, also was könnte hier eine endlos-Schleife verursachen? Ich will bewirken, dass die Anzahl der Liste der Dreiecke immer ein Vielfaches von 3 ist und wenn dem nicht so ist, sollel eben entsprechend neue Punkte hinzugefügt werden.
    Aber irgendwie entsteht hier eine endlos-Schleife die dann nach einer gewissen Zeit eine OutOfMemoryException verursacht.



  • Müsste es nicht rest = triangles.size()%3; statt rest = 3%triangles.size(); heißen? Weil wenn triangles.size ein Vielfaches von 3 sein soll, dann muss triangles.size durch drei teilbar sein und nicht andersrum.
    (könnte sein, dass ich voll daneben liege, da ich grad mit qualmendem Kopf nach Hause gekommen bin)



  • nee du hast völlig recht 😉 daher auch endlos schleife weil (3 % größer3) wird immer 3 ergeben und damit nie die abruchbedingung schließen (rest>0)



  • Ok, jetzt klappt es. Danke!


Log in to reply