Quellcodeanalyse

Teresa

Mitglied
Hallo

Ich habe einen (fremden) Quellcode versucht zu analysieren und zu dokumentieren.
Kann vielleicht mal jemand schauen, ob ich das richtig verstanden habe?

Java:
public class Stn  {
	
	  public static void main(String[] args) {  
		  
		int zeilen = 15;{                       
		int zaehlen;
			
		for(int s = 1; s < zeilen * 2; s +=2) {               //es werden 2 Dreiecke erstellt 
			                                                  //in jeder Zeile werden zwei Sternchen mehr ausgegeben
			
		
		// int zaehlen = (s < zeilen ? s : zeilen - (s - zeilen));	
			
			
			if (s < zeilen)                                    //das Dreieck wird gespiegelt indem 
				 zaehlen = s;                                  //zunächst die Sternchen hinzuaddiert
			else
				 zaehlen = zeilen - (s-zeilen);                //und danach abgezogen werden
			
		
			
			
		for(int t = 0; t < (zeilen - zaehlen)/2; t++) {        //Ausgabe der Leerzeichen 
				System.out.print(' ');                          
			}
		for(int l = 0; l < zaehlen; l++) {                    // Ausgabe der Sterne
				System.out.print("*");
			}
			System.out.println();
		    }
		}
	}
}
 

alien0matic

Mitglied
1. Kann man zwar sagen, dass eine Raute aus 2 Dreiecken besteht. Ich würde es trotzdem Raute nennen.
2. For-Schleife in Zeile 9 ist nicht wirklich erklärt.
3. If in Zeile 16ff besser erklären. Wann wird hier was und warum abgezogen? Liest man nur die Kommentare denkt man es gäbe keine Bediengung.
4. Kommentare in Zeile 24 und 27 sind Sherlok Comments. Erkläre hier warum so und so viele davon ausgegeben werden.

(Wären meine Anmerkungen dazu)
 

Teresa

Mitglied
Guten Abend

So vielleicht besser?

Java:
	  public static void main(String[] args) {  
		  
		int zeilen = 15;{                       
		int zaehlen;
			
		for(int s = 1; s < zeilen*2; s +=2) {                 //es werden 2 Dreiecke erstellt damit eine Raute entsteht
			                                                  //zeilenanzahl wir mit 2 multipliziert, damit die untere Hälfte
			                                                  //dargestellt wird
			                                                  //in jeder Zeile werden zwei Sternchen mehr ausgegeben
			
		
		// int zaehlen = (s < zeilen ? s : zeilen - (s - zeilen));	
			
			
			if (s < zeilen)                                    //das Dreieck wird gespiegelt  
				 zaehlen = s;                                  //In der oberen Hälfte werden pro Zeile jeweils 2 Sternchen hinzuaddiert
			else
				 zaehlen = zeilen - (s-zeilen);                //In der unteren Hälfte werden mit jeder Zeile jeweils 2 Sternchen abgezogen
			
		
			
			
		for(int t = 0; t < (zeilen-zaehlen)/2; t++) {        //Ausgabe der Leerzeichen 
			                                                   //es wird an der vertikalen Diagonalen begonnen zu zählen und  
			      System.out.print(' ');                       //muss durch 2 dividiert werden, damit nur ein Leerzeichen pro Zeile 
			                                                   //hinzugefügt wird
			                                                                          
			}
		for(int l = 0; l < zaehlen; l++) {                    // Ausgabe der Sterne
				System.out.print("*");                        // es wird von oben bis zur Mitte gezählt
			}
			System.out.println();
		    }
		}
	}
}
 

Oben