Scholli04 Geschrieben 31. Mai 2010 Geschrieben 31. Mai 2010 Hallo Community ! Ich bin in der 8. Klasse eines Gymnasiums und habe dort das Differnzierungsfach Informatik. Gerade lernen wir den "Java-Hamster". Wir haben die Aufgabe bekommen, mithilfe von IF-Befehlen,folgende Aufgabe zu lösen. Außer IF-Befehlen und den Grundeigenschaften haben wir leider noch nichts behandelt. Also: Der Hamster soll Prüfen, ob an den 4 Eckstellen ein Korn liegt oder nicht. Wenn dort ein Korn liegt soll er es in die gegenüberliegende Box bringen. Mein Problem ist, dass er mir beim Kompiliren auswirft: Else without if. So sah mein Ansatz aus :void main() { gehe_zum_fass1(); schaue_nach_kisteO(); gehe_zu_flur(); schaue_nach_kisteU(); gehe_zum_fass2(); schaue_nach_kisteU(); gehe_zurück(); } void gehe_zum_fass1(){ linksUm(); vor(); rechtsUm(); vor(); vor(); linksUm(); vor(); } void schaue_nach_kisteO() { if (kornDa()) nimm(); linksUm(); linksUm(); vor(); vor(); gib(); } void gehe_zum_fass2(){ linksUm(); linksUm(); vor(); rechtsUm(); vor(); vor(); rechtsUm(); vor(); } void schaue_nach_kisteU(){ else { linksUm(); linksUm(); vor(); } if (kornDa()) nimm(); linksUm(); linksUm(); vor(); vor(); gib(); } void gehe_zurück() { linksUm(); linksUm(); vor(); rechtsUm(); vor(); vor(); vor(); vor(); linksUm(); vor(); } void dreivor() { vor(); vor(); vor(); } void rechtsUm(){ linksUm(); linksUm(); linksUm(); } Vielleicht kann mir ja Jemand helfen. Vielen Dank Gruss Scholli Zitieren
Ulfmann Geschrieben 31. Mai 2010 Geschrieben 31. Mai 2010 Hi, du musst dich schon an die richtige Syntax halten. Niemals ein else, ohne vorangegangenes if! void schaue_nach_kisteU() { if (kornDa()) { nimm(); linksUm(); linksUm(); vor(); vor(); gib(); } else { linksUm(); linksUm(); vor(); } } Zitieren
Scholli04 Geschrieben 31. Mai 2010 Autor Geschrieben 31. Mai 2010 Danke! Aber bei mir wirft er immer mehr Fehler aus. Ich habe versucht es mal zu kopieren bzw zu ändern aber es funktioniert immer noch nicht ! Zitieren
Ulfmann Geschrieben 31. Mai 2010 Geschrieben 31. Mai 2010 es funktioniert immer noch nicht ! Was heißt "es funktioniert nicht"? Macht der Hamster nicht das, was du willst? Geht dein Rechner dabei aus? Bekommst du eine Fehlermeldung? Poste diese ggf. mal (bzw. schau sie dir erstmal selbst an, denn in den meisten Fällen sagt sie einem genau was man wo falsch gemacht hat). Zitieren
Dragon8 Geschrieben 31. Mai 2010 Geschrieben 31. Mai 2010 Welche Fehler bekommst du denn jetzt ausgegeben, bzw was funktioniert nicht? Ich denke du musst dir nur nochmal verinnerlichen wie genau If-Anweisungen auszusehen haben, und dann nochmal alles kontrollieren ob du das auch so eingehalten hast. if ([I]Bedingung[/I]) { [I]Anweisungen[/I] } [else { [I]Anweisungen[/I] } ] *Die eckigen Klammern sind nur vorhanden, um dazustellen, dass der else-Zweig optional ist. Das heißt, eine Verzweigung fängt immer mit dem Schlüsselwort "if" an. Danach kommt in Klammern die Bedingung die ausgewertet werden soll. Wenn diese Bedingung war ist, werden die Anweisungen innerhalb des If-Blockes, der in geschweiften Klammern eingefasst ist, ausgeführt. Falls die Bedingung falsch ist, werden die Anweisungen im eventuell vorhandenen else-Zweig ausgeführt. Auch diese stehen zusammengefasst in geschweiften Klammern. Wenn kein else-Zweig angegeben ist, dann wird nach der if-Verzweigung weitergemacht. Die geschweiften Klammern können zwar weggelassen werden, das würde ich dir als Anfänger aber nicht empfehlen. Wenn du diese nämlich weglässt, dann wird nur die Anweisung ausgeführt die dem Schlüsselwort if (und der Bedingung) / else folgt, alles danach gehört dann nicht mehr zu Verzweigung und wird immer ausgeführt. Und nun kontrollier am besten mal nochmal alles ob das bei dir auch so stimmt. Vorzugsweise nicht in dem du die Lösung einfach versuchst reinzukopieren, sondern in dem du deinen Quelltext nochmal komplett durch gehst und alles anpasst was nicht passt. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.