Kommentieren

Status
Nicht offen für weitere Antworten.

Acidburn1982

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

Code:
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...
 

thE_29

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

Acidburn1982

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



Code:
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"
}
 

Acidburn1982

Mitglied
sorry André aber ich versteh es immer noch nicht!

Code:
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?!
 

WieselAc

Top Contributor
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.
 
Status
Nicht offen für weitere Antworten.

Oben