Warum kann ich auf Variable nicht zugreifen

tlattex

Mitglied
Hei Leute,

hier mal eben mein Programm:
Java:
import java.io.*;

public class ausgabe1{
 public static void main (String [] args){

  Boolean richtig = false;
  Console cons = System.console();
  
  while(richtig == false){
  cons.printf("\n");
  cons.printf("Bitte geben Sie ihren Namen ein: " );
  String Name = cons.readLine();
  cons.printf("\n");
  cons.printf("Geben Sie bitte Ihr Alter ein  : ");
  String alter1 = cons.readLine();
  int alter = Integer.parseInt(alter1);  
  cons.printf("\n");
  cons.printf("Ihre Daten: " +"\n\n"); 
  cons.printf("Name : " +Name +"\n");
  cons.printf("Alter: " +alter +"\n");
  cons.printf("Sind alle Angaben korrekt eingegeben worden? (Y/N)" +"\n");
  String janein = cons.readLine();

  cons.printf("\n");
   switch (janein){
    case "Y": richtig = true;
             	 break;
    case "y": richtig = true;
               	break;
    case "N": cons.printf("Bitte geben Sie Ihre Daten erneut ein. ");  
    		break;
    case "n": cons.printf("Bitte geben Sie Ihre Daten erneut ein. ");  
		break;
    default: cons.printf("Falsche Eingabe, es sind nur 'Y' und 'N' zulässig! ");  
   }
    

  }
 cons.printf("Herzlichen Glückwunsch und Willkommen %s bei uns",Name);
 }

}

und es kommt immer der Fehler, dass der Zugriff bei der letzten Ausgabe-Anweisung auf die Variable
Name verweigert wurde. Aber oben ist sie doch deklariert bzw eingelsen worden. wie kann ich das machen?

Danke
 
Ich bin zwar auch noch Anfänger, denke aber dass es daran liegt, dass "Name" großgeschrieben ist. Ich würde mal versuchen, Zeile 12 in
Java:
String name = cons.readLine();
umzuändern, sowie Zeile 19 in
Java:
cons.printf("Name : " + name +"\n");
. Ich hoffe das hilft 🙂
 
ne daran liegts nicht,
das ist ja egal ob beides groß geschrieben ist oder beides klein
hauptsache beide ist gleich 🙂

in Zeile 19 funktioniert der Zugriff, nur in Zeile 39 funktioniert er nicht , weil ich hier außerhald
der while-schleife bin. -.-
 
in Zeile 19 funktioniert der Zugriff, nur in Zeile 39 funktioniert er nicht , weil ich hier außerhald
der while-schleife bin. -.-

Du hast es selbst gesagt. Die Variable ist nur innerhalb der while-Schleife gültig. Was spricht dagegen, sie in Zeile 8 zu deklarieren?

Und Variablen schreibt man wirklich besser klein ... schon einfach wegen der Konventionen ...

Java:
import java.io.*;
 
public class ausgabe1{
 public static void main (String [] args){
 
  Boolean richtig = false;
  Console cons = System.console();
  String name = "";

(...)
 
Dann musst du die Definition in Zeile 12 eben entfernen und nur auf die Variable zugreifen??

Java:
import java.io.*;
 
public class ausgabe1{
 public static void main (String [] args){
 
  Boolean richtig = false;
  Console cons = System.console();
  String name = "";
  
  while(richtig == false){
  cons.printf("\n");
  cons.printf("Bitte geben Sie ihren Namen ein: " );
  name = cons.readLine();
  cons.printf("\n");
  cons.printf("Geben Sie bitte Ihr Alter ein  : ");
  String alter1 = cons.readLine();
  int alter = Integer.parseInt(alter1);  
  cons.printf("\n");
  cons.printf("Ihre Daten: " +"\n\n"); 
  cons.printf("Name : " +name +"\n");
  cons.printf("Alter: " +alter +"\n");
  cons.printf("Sind alle Angaben korrekt eingegeben worden? (Y/N)" +"\n");
  String janein = cons.readLine();
 
  cons.printf("\n");
   switch (janein){
    case "Y": richtig = true;
                 break;
    case "y": richtig = true;
                break;
    case "N": cons.printf("Bitte geben Sie Ihre Daten erneut ein. ");  
            break;
    case "n": cons.printf("Bitte geben Sie Ihre Daten erneut ein. ");  
        break;
    default: cons.printf("Falsche Eingabe, es sind nur 'Y' und 'N' zulässig! ");  
   }
    
 
  }
 cons.printf("Herzlichen Glückwunsch und Willkommen %s bei uns",name);
 }
 
}

Klappt bei mir ohne Probleme! :toll:
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben