Java Kara: Er soll Blaetter aufnehmen? Variablen?

2 Antworten

Umsetzung dürfte inetwa so aussehen:

int i;
i=0;
while(i < 5){
  kara.move();
  kara.removeLeaf();
  i = i+1;
}

Variablen sind schlicht Dinge, die Zeug speichern können.

Zuerst musst du eine Variable deklarieren, quasi dem Programm sagen, was für Werte du darin speichern willst:

[Typ] [Variablenname];

Beispielsweise:

int i;

Du speicherst Werte in einer Variable, indem du dieser einen Wert zuweist:

[Variablenname] = [Wert];

Beispielsweise

i = 0;
i = i+1;

Bei Verwendungd er Variable in Rechnungen wird automatisch der Wert der variable an der Stelle eingesetzt, wo der Bariablenname steht.

Beispielsweise:

i+1;

heißt soviel wie

[Wert von i]+1;
tagpriya 
Fragesteller
 08.03.2020, 15:31

Vielen Dank!

1
tagpriya 
Fragesteller
 08.03.2020, 15:35

aber muss man da nicht irgendwas Minus machen? Ich will ja von den 5 Blättern immer eins abziehen- je Schritt.

??

0
Destranix  08.03.2020, 15:38
@tagpriya

'i' zäjhlt in meinem Programm die bisher aufgenommenen Blätter.

Aber das liese sich auch anderherum umsetzen:

int i;
i=5;
while(i >= 0){
  kara.move();
  kara.removeLeaf();
  i = i-1;
}
1
Ich habe eine Aufgabe, die man mit Hilfe von "Variablen" lösen soll:
Kara hat 7 Blätter vor ihr liegen. Sie will aber 5 Blätter aufheben.

du speicherst in einer Ganzzahl (Integer) die momentane Anzahl von aufgenommenen Blättern.

Wenn du auf ein neues Feld kommst und weniger als 5 Blätter im inventar hast, nimmst du das Blatt auf

Ich verstehe generell das Theme ,,Variable" nicht.

eine Variable ist an sich ein Speicherort für einen Wert. In Java hat eine Variable immer einen festen Typ, welcher nicht geändert werden kann

tagpriya 
Fragesteller
 08.03.2020, 15:34

Also müsste ich erst schreiben:

int i=5;

und dann

while (!kara.treeFront)

kara.move();

kara.removeLeaf();

i= i-1;

? ??

0
xxxcyberxxx  08.03.2020, 15:46
@tagpriya

dein kara.treeFront überprüft vermutlich, ob ein Baum direkt vor dem Käfer ist (und damit der Rand)?

Nun ja, du hast zwar deinen Integer auf 5 gesetzt und verringerst ihn, machst aber nichts damit... dh es wird dennoch immer ein Blatt aufgenommen.

die Frage ist auch: Möchtest du nach den 5 dennoch weiterlaufen? oder willst du sofort stoppen?

Pseudocode-Mäßig kannst du letzteres in etwa so aufziehen;

Integer i = 0 //speichert Anzahl der Blätter
Integer limit = 5 // maximale Anzahl Blätter

//überprüfe Feld, auf dem Kara momentan ist
if field has leaf:
  pick up leaf
  i += 1
while (Kara can move forward and i < limit):
  move kara forward
  if field has leaf:
    pick up leaf
    i += 1
1