Methode ohne Rückgabewert in boolean Methode ändern

keeev

Mitglied
Hi erstmal,
mein Problem ist folgendes:

Ich hab grad ein Programm geschrieben, welches mir einen Weihnachtsbaum "zeichnet".

Java:
public class Uebung14
{
	public static void main (String [] args)
	{
		System.out.println ("Bitte KRONEN_HOEHE eingeben:");
		int KRONEN_HOEHE = Input.getInt();
		int KRONEN_VAR=KRONEN_HOEHE;

		System.out.println ("Bitte STAMM_HOEHE eingeben:");
		int STAMM_HOEHE = Input.getInt();
		int STAMM_VAR=STAMM_HOEHE;

		System.out.println ("Bitte STAMM_BREITE eingeben:");
		int STAMM_BREITE = Input.getInt();
		int STAMM_BR_VAR=STAMM_BREITE;

		System.out.println ("Bitte LAGE eingeben:");
		int LAGE = Input.getInt();

		// Schleife für Baumkrone

		for (int i=0; i<KRONEN_HOEHE; i++)
		{
			for (int l=0; l<LAGE; l++)				// Schleife für Lageveränderung Krone
			{
				System.out.print ("-");
			}
			zeile(KRONEN_VAR,1+i+i);
			KRONEN_VAR=KRONEN_VAR-1;
		}

		// Schleife für Stamm

		for (int u=0; u<STAMM_HOEHE; u++)
		{
			for (int k=0; k<LAGE; k++)				// Schleife für Lageveränderung Stamm
			{
				System.out.print ("-");
			}
			zeile (KRONEN_HOEHE-(STAMM_BREITE/2),STAMM_BREITE);
		}
	}


		// Funktion Zeile

		public static void zeile (int minus, int stern)
		{
		for (int i=0; i<minus; i++)					// Schleife für Minusausgabe
			{
			System.out.print ("-");
			}
		for (int u=0; u<stern; u++)					// Schleife für Sternausgabe
			{
			System.out.print ("*");
			}
		System.out.println (" ");
		}
}

Nun soll die Methode "zeile" folgendes überprüfen:

- der erste Parameter oder
- der zweite Parameter oder
- die Summe aus beiden Parametern
zwischen den Grenzen einer Zeile (0 bis 79) liegen.

Leider weiß ich grad nicht wirklich weiter, hier meine Idee:

Java:
		// Funktion Zeile

		public static boolean zeile (int minus, int stern)
		{
		if (minus<0 || minus>79) return false;
		else if (stern<0 || stern>79) return false;
		else if (minus+stern<0 || minus+stern>0) return false;
		else 
			{
			for (int i=0; i<minus; i++)					// Schleife für Minusausgabe
				{
				System.out.print ("-");
				}
			for (int u=0; u<stern; u++)					// Schleife für Sternausgabe
				{
				System.out.print ("*");
				}
			System.out.println (" ");
			}
		return true;
		}
}

Aber leider funktioniert das nicht wirklich bzw. wo füge ich jetzt die true bzw. false Abfrage ein?
 
Also bis jetzt klappt alles mit dem Rückgabewert, nur wie kann ich diesen Abfragen?

if (zeile() == true) System.out.print ("True");

oder wie lautet der Syntax?
 
In den Klammern des ifs muss ein boolean stehen. Der Gleichheitsoperator == gibt eines zurück. Du kannst aber auch den Gleichheitsoperator weglassen. Sonst sehe ich spontan keinen Fehler, wenn der Rückgabewert richtig ist.
 
Also so sieht jetzt meine Funktion aus:

Java:
		public static boolean zeile (int minus, int stern)
		{
		boolean fehler;
		if (minus<0 || minus>79 || stern<0 || stern>79 || minus+stern<0 || minus+stern>0) fehler=true;
		else
			{
			for (int i=0; i<minus; i++)					// Schleife für Minusausgabe
				{
				System.out.print ("-");
				}
			for (int u=0; u<stern; u++)					// Schleife für Sternausgabe
				{
				System.out.print ("*");
				}
			System.out.println (" ");
			fehler=false;
			}
		return fehler;
		}

Nun aber wenn ich in der main "fehler" abfrage z.B.:

Java:
		if (fehler) System.out.println ("true");

Sagt er mir "cannot find symbol". Was bedeutet das?
 
Liegt daran das du die Variable fehler nur in der Methode erzeugst, nach ablauf der methode ist die variablweg! Du must sie über dem konstruktor global Deklarieren!
 

Zurück
Oben