Parameter_rückgabewert

Lange

Mitglied
Sie haben eingegeben: 1
Spielzug Spieler: 2 posi 2 anzahl
Spiel: nach Zug Spieler: 0 position 2 spielgewinn1

Warum ist die "position" nach dem Zug des Spielers immer noch auf 0, statt auf 2? Ich würde erwarten, dass nach Aufruf von spielzugSpieler(position) posi=2, das in spielzugSpieler gesetzt wird, zurück gegeben wird. Warum funktioniert das nicht:

Java:
public class Parameter_uebergabe {
  public static void main(String[] args) {


    int beginner = 1;
    System.out.println("Sie haben eingegeben: " + beginner);
 
     
    spiel(beginner);
  
   }


    public static int spiel(int beginn)  {
      int spielgewinn1 = 0;
      int position = 0;     

       spielgewinn1 = (spielzugSpieler(position)); 
      System.out.println("Spiel: nach Zug Spieler: " + position + " position  " +  spielgewinn1 + " spielgewinn1" );
   
      
       
      return spielgewinn1;
   }

    public static int spielzugSpieler(int posi)  {
 
      int anzahl = 2;

      posi = posi + anzahl;
      System.out.println("Spielzug Spieler: " + posi + " posi  " + anzahl + " anzahl");
      return anzahl;
    }
}
 

WIaimy

Mitglied
posi ist eine Lokale Variable deiner untersten Methode. Du gibst ihr zwar einen Wert (hier 0) und erhöhst ihn, lässt es aber nicht zurück geben. Deshalb verfällt das ganze nachdem die Methode abgearbeitet wurde. Denn deine Variable posi verändert nichts an der Variable position!
Die beiden haben gar nichts mit einander zu tun, außer das beim Aufruf posi = position ist.
 

Neue Themen


Oben