Variablen Cannot be resolved to a variable

  • Themenstarter Themenstarter PauleOfficial
  • Beginndatum Beginndatum
P

PauleOfficial

Gast
Hey,
Ich arbeite seit einer Woche mit Java und wollte ein erstes kleines Projekt erstellen.
Allerdings bekomme ich 2 mal einen Fehler und weiß nicht warum

1.
[Java]
public int getMotivation(){
int summ = torwart.getMotivation();
for (int i=0; i<10; i++);
summ += kader.getMotivation();
return summ/11;
}
[/code]

Fehler: i cannot be resolved to a variable. Ein Integer weiter oben ist die gleiche Lage, doch dort funktioniert es.

2.
Java:
float stearke1 = 	0.8f * m1.getStaerke() + 
								0.15f	* m1.getMotivation() + 
								0.05f	* m1.getTrainer().getErfahrung();
			float stearke2 =	0.8f	* m2.getStaerke() +
								0.15f	* m2.getMotivation() +
								0.05f	* m2.getTrainer().getErfahrung();


if((r.nextInt(Math.round(staerke1 + staerke2)-staerke1 < 0))){
//Anweisungen
}

Fehler: staerke1 + staerke2 cannot be resolved to a variable. Auch hier weiß ich nicht warum, wenn ich das ganze ausgeben lassen möchte Via out.println, gibt es soeinen Fehler nicht.

Vielleicht kann ja einer helfen, würde mich freuen.

PauleOfficial
 
Zu 1.: Lass das Semikolon in Zeile 3 weg. Das beendet die Schleife und Variable i ist nicht mehr gültig. Schließe den Schleifenrumpf am besten in einen {}-Block.

Zu 2.: Einmal schreibst du staerke und einmal stearke. Das ist ein Unterschied.
 
zu 1.: Super das war es.
zu 2.: Das löst das Problem leider auch nicht. Weder die Klammer setzten, noch die Bennenung.
 
Bei mir funktionierts, wenn ich die Variablen umbenenn und ne entsprechende Klammer setz.
War allerdings nicht die Klammer um staerke1+staerke2, sondern 'ne Klammer von der 0 weg
und hinter "-staerke1" dran bzw hinter dein

Java:
Math.round(staerke1 + staerke2)

Da sich der Compiler bei mir sonst beschwert,
dass nextInt en int als Parameter haben will und kein boolean.

Also im Endeffekt sowas wie
Java:
if(r.nextInt(Math.round(staerke1 + staerke2))-staerke1 < 0)
 
Ich steig da nicht durch, wieso geht das bei dir aber bei mir nicht.

Java:
if(r.nextInt(Math.round(staerke1 + staerke2))-staerke1 < 0)

Immernoch der gleiche Fehler.
 
sind stärke 1 und 2 im gleichen block wie das if? die einrückung sieht merkwürdig aus
vermute auf das gleiche problem wie im for oben
 
Gut ich werde dann nochmal üben sauberer zu schreiben.

Fehler gelöst danke an alle!
 
Ich kann dir eigentlich nur empfehlen eine IDE wie eclipse, netbeans oder ähnliches zu benutzen. Dort werden solche compilerfehler direkt erkannt und dir als Fehler angezeigt, bevor du das Programm überhaupt einmal gestartet hast. Desweiteren hast du damit den Vorteil, dass es eine automatische Einrückung gibt, sodass ein Fehler wie bei aufgetreten ist, sich seltener wiederholen sollte.
 

Zurück
Oben