# Kommentieren



## Acidburn1982 (18. Jan 2007)

Hallihallo...wäre vielleicht jemand so nett und würde mir diesen Quelltext an der Stelle mit den ??? kommentieren? Würde mir sehr weiterhelfen!


```
import java.util.Calendar; //???


public class Kalender //verwendet die Klassen "Eingabe" und "Fragen"
{

private int monat;

public static void main(String ...args)//???
{
	int monat = 1;			//1=Januar 12=Dezember

	if (args.length == 1) //???
	{
		monat = Integer.parseInt(args[0]); //"Adventsmonat" aus Eingabeparameter lesen
	}

	Kalender k = new Kalender(monat);//???
	k.abfrage(); //startet die "Hauptschleife"
}

public Kalender(int monat)
{
this.monat = monat; //sich den "Adventsmonat" merken
}

public void abfrage()
{	int tag=0;
	do
	{
		
			System.out.println("Advents-Kalender");
			for (int j=0; j<24; j++)		//optischer Kalender
			{
				System.out.print(j+1 +" ");
				if(j<9)
				{
					System.out.print(" ");
				}
				if((j+1)%6==0)
				{
				System.out.println();
				}
			}
		
	System.out.println();
		
	System.out.println("Welches Türle hätten's denn gern? 1..24, 0 für Ende");
		
	tag = Integer.parseInt(Eingabe.readString()); //übernimmt den Tag aus der Klasse "Eingabe"
	if(tag>0 && tag<25)
	{
	
	int aktuellerMonat = findeAktuellenMonat();
	while(aktuellerMonat != monat)
	{
		System.out.println("Ohh wir haben noch nicht den " + tag + ". Dezember");
		break; //Programm-Ende
	}
	

	
	while(tag == 0) 
	{
		System.out.println("Ciao!");
		break; //Programm-Ende
	}
	

	int aktuellerTag = findeAktuellenTag();
	if (aktuellerTag >= tag)
	{
		raetsel(tag);
	} 
	else 
	{
		System.out.println("Türchen lässt sich noch nicht öffnen, denn heute ist erst der " + aktuellerTag + ". Dezember");
	}
	}
	} while(tag != 0);
}


public int findeAktuellenTag()
{
	Calendar cal = Calendar.getInstance();
	return cal.get(Calendar.DAY_OF_MONTH);
}

public int findeAktuellenMonat()
{
	Calendar cal = Calendar.getInstance();
	return cal.get(Calendar.MONTH)+ 1; //Calendar.MONTH startet mit Januar = 0
}

public void raetsel(int tag)
{	
	System.out.println(Fragen.FRAGE[tag]);
	if (Eingabe.readString().charAt(0)=='a' || Eingabe.readString().charAt(0)=='b' || Eingabe.readString().charAt(0)=='c')
	{
	if (Eingabe.readString().charAt(0) == Fragen.ANTWORT[tag])//??? besonders charAt(0) versteh ick nich
	{
		System.out.println("Fein gemacht!");
		System.out.println();
	}
	else
	{
		System.out.println("Du Blindflansch!Die Lösung ist " + Fragen.ANTWORT[tag] + " Streng dich nächstes Jahr etwas mehr an!");
		System.out.println();
	}
	}
	
}

}
```

Danke schonmal!  MfG Acid...


----------



## unknown_member (18. Jan 2007)

Das klingt aber stark nach einer hausaufgabe, oder?


----------



## Acidburn1982 (19. Jan 2007)

ja!  und?


----------



## thE_29 (19. Jan 2007)

Wie wärs mit der Java API und selber hinsetzen und mal überlegen was dieser Befehl tut?!


----------



## Acidburn1982 (19. Jan 2007)

Hab ick doch schon gemacht!

Verratet mir wenigstens wat dieses "args" sein soll...


----------



## Wildcard (19. Jan 2007)

In dieser Variablen stehen die Parameter die zum Programmstart mitgegeben wurden.


----------



## unknown_member (19. Jan 2007)

Acidburn1982 hat gesagt.:
			
		

> ja!  und?



Da lernst de nix, so...


----------



## Leroy42 (20. Jan 2007)

Acidburn1982 hat gesagt.:
			
		

> Hab ick doch schon gemacht!
> 
> Verratet mir wenigstens wat dieses "args" sein soll...



Und schon wieder ein Anwärter auf das kürzeste Paradoxon.


----------



## Acidburn1982 (24. Jan 2007)

welche Parameter denn?  und was soll denn    if (args.length == 1) bedeuten???




```
public static void main(String ...args)//???
{
   int monat = 1;         //1=Januar 12=Dezember

   if (args.length == 1) //???
   {
      monat = Integer.parseInt(args[0]); //"Adventsmonat" aus Eingabeparameter lesen
   }

   Kalender k = new Kalender(monat);//???
   k.abfrage(); //startet die "Hauptschleife"
}
```


----------



## André Uhres (24. Jan 2007)

args.length gibt die Anzahl der Elemente im Stringarray zurück.


----------



## Acidburn1982 (24. Jan 2007)

und welche sind die Argumente im Stringarray?


----------



## André Uhres (24. Jan 2007)

http://www.galileocomputing.de/openbook/javainsel6/javainsel_03_010.htm#Xxx1000224


----------



## Acidburn1982 (25. Jan 2007)

sorry André aber ich versteh es immer noch nicht! 


```
public static void main( String[] args ) 
{ 
  if ( args.length == 0 ) 
    System.out.println( "Was!! Keiner liebt kleine Hamster?" ); 
  else 
  { 
    System.out.print( "Liebt kleine Hamster: " ); 
 
    for ( String s : args ) 
      System.out.format( "%s ", s ); 
 
    System.out.println(); 
  } 
}
```

wenn ich die 0 mit na 1 tausche, bringt er z.B. die untere Ausgabe!  Warum?!


----------



## André Uhres (25. Jan 2007)

du meinst bei
if ( args.length == 1 ) 
kommt die untere Ausgabe?
dann ist args.length nicht gleich 1


----------



## Acidburn1982 (26. Jan 2007)

ja ich weiss. ich weiss auch das args.length wohl die anzahl der argumente ist.  aber welche argumente denn???


----------



## WieselAc (26. Jan 2007)

die du beim aufruf mit übergibst.

Wenn deine Klasse in einer Datei Test.java ist, machst du folgenden Aufruf auf der Kommandozeile:

javac Test.java
java Test parameter1 parameter2 parameter3

dann ist args ein array indem an position 0 "parameter1" setht, an Position 1 "parameter2" und was an position 2 steht sollte klar sein. 

In einer IDE wie Eclipse musst du solche Parameter bei bedarf über die Run Konfuguration an deinen "Aufruf" hängen.


----------



## Acidburn1982 (29. Jan 2007)

ach so...allet klar!  Dank dir (euch)


----------

