weiß jemand warum die Variablen w,x,y,z immer mit null-Wert ausgegeben werden?
Code:
MeineAusgabe.schreibe("Bitte geben Sie ihren 4stelligen Tipp ein.");
tipp = MeineEingabe.erfasseText();
try
{
char w = tipp.charAt(0); // Problem muss irgendwie hier sein, anstatt des ersten Zeichens von tipp wird null
char x = tipp.charAt(1); // übernommen (auch wenn es nicht null ist)
char y = tipp.charAt(2); //wenn ich die try/catch Anweisung weglasse tritt das Prob nicht auf.
char z = tipp.charAt(3);
}
catch (StringIndexOutOfBoundsException e)
{
System.err.println("Bitte geben Sie '4' Zahlen ein!!!");
}
MeineAusgabe.schreibe("\n\n" + w + x + y + z); //
entweder sind w, x, y, z Exemplarvariablen der Klasse
und werden nicht dadurch geändert, dass du im try/catch-Block gleichnamige lokale Variablen definierst
oder es gibt einen Compilerfehler, w,x,y, z sind außerhalb des try/catchBlocks nicht definiert
Es gibt keine Fehlermeldung beim Kompilieren, ich denke deshalb das es sich um Exemplarvariablen handelt!?
Wie ist es möglich den Wert von x,y,z außerhalb der Try-Anweisung zu verwenden?
Code:
public class Mastermind
{
/**zur Festlegung von Zufallszahlen*/
private Zufallszahl zahl = null;
/**zur Benutzereingabe eines Wertes*/
private String tipp;
/**übernimmt eine Stelle des Tipps*/ //hier sind x,y,z deklariert!
private String x;
/**übernimmt eine Stelle des Tipps*/
private String w;
/**übernimmt eine Stelle des Tipps*/
private String y;
/**übernimmt eine Stelle des Tipps*/
private String z;
/**übernimmt den Wert einer Zufallszahl*/
private Zufallszahl zufall1;
/**übernimmt den Wert einer Zufallszahl*/
private Zufallszahl zufall2;
/**übernimmt den Wert einer Zufallszahl*/
private Zufallszahl zufall3;
/**übernimmt den Wert einer Zufallszahl*/
private Zufallszahl zufall4;
/**stoppt die Schleife*/
private int schleifenStopp = 0;
/**In dieser Mastermindsimulation wird eine zufällige zahl erzeugt die
* der Benutzer oder der Rechner herausfinden soll.*/
public Mastermind() throws IOException
{
/**generiert Zufallszahlen*/
generiereZufallszahl();
/**lässt den Benutzer tippen*/
nehmeTippAn();
}
private void generiereZufallszahl() throws IOException
{
zahl = new Zufallszahl();
}
private void nehmeTippAn() throws IOException
{
MeineAusgabe.schreibe("Bitte geben Sie ihren 4stelligen Tipp ein.");
tipp = MeineEingabe.erfasseText();
try
{
char w = tipp.charAt(0);
char x = tipp.charAt(1);
char y = tipp.charAt(2);
char z = tipp.charAt(3);
MeineAusgabe.schreibe("\n\n" + w + x + y + z); //innerhalb der try Anweisung werden die Werte be-
} //behalten, danach nicht mehr
catch (StringIndexOutOfBoundsException e)
{
System.err.println("Bitte geben Sie '4' Zahlen ein!!!");
}