fraktal

Tonxxx

Bekanntes Mitglied
hallo, ich hab da gerade ein kleines programm aus dem internet, nun verstehe ich es jedoch nicht ganz.
ich verstehe nicht wie dass i überhaupt irgend einmal 30 werden kann, die schleife lässt es ja nur bis 29 wandern. könnt ihr mir das erklähren?
Java:
import java.awt.*;
import java.applet.*;

public class fraktal1 extends Applet {
    public void init() {
        setBackground(new Color(255,255,255)); //Hintergrundfarbe Applet
    }

    //C-Werte checken nach Zn+1 = Zn^2 + C, Zo = 0. 30 Iterationen.
    public int checkC(double reC,double imC) {
        double reZ=0,imZ=0,reZ_minus1=0,imZ_minus1=0;
        int i;
        for (i=0;i<30;i++) {
            imZ=2*reZ_minus1*imZ_minus1+imC;
            reZ=reZ_minus1*reZ_minus1-imZ_minus1*imZ_minus1+reC;
            if (reZ*reZ+imZ*imZ>4){
            	if(i == 30){
            		
            	System.out.println(i);
            	}
            	return i;
            }
            reZ_minus1=reZ;
            imZ_minus1=imZ;
        }
    	if(i == 30){
    		
        	System.out.println(i);
        	}
        return i;
    }

    //Punkte berechnen und setzen.
    public void paint (Graphics g) {
        double reC, imC, zelle=0.00625; //Ein Pixel = 0.00625
        int x,y;
        Color colAppleman = new Color(0,129,190); //Farbe Apfelmännchen

        imC=-1.1; //oberer Rand
        for (y=0;y<350;y++) {
            reC=-2.1; //linker Rand
            for (x=0;x<440;x++) {
                if(checkC(reC,imC)==30) {
                	System.out.println("BLA" + checkC(reC,imC));
                    g.setColor(colAppleman);
                    g.drawLine(x,y,x,y);
                }
                reC=reC+zelle; //nächste Spalte
            }
            imC=imC+zelle; //nächste Zeile
        }
    }
}
 
G

Gastredner

Gast
Nach dem letzten Schleifendurchgang - der, wo i 29 ist - wird i erneut erhöht und somit auf den Wert 30 gesetzt. Bei der anschließenden Prüfung der Schleifenbedingung wird folglich deren Ungültigkeit festgestellt und der Programmablauf setzt mit dem ersten Befehl nach der Schleife fort.
Innerhalb der Schleife wird i niemals den Wert 30 haben - nach dieser jedoch schon.
 

Ähnliche Java Themen


Oben