Fehler: cannot be resolved

Hi all.
Ich hab ein kleines Problem mit meinem Programm.

Der Anwender soll drei Zahlen eingeben, die dann als Datum zusammengefasst und ausgegeben werden.
Die Daten werden durch eine do-while-Schleife überprüft (if-else wär vielleicht sinvoller, aber so lautet die Aufgabe).

Nun bekomme ich allerdings in der Schleife bei jeder Variable folgenden Fehler: z.b.:
"t cannot be resolved".
Diesen Fehler bekomme ich auch bei dem Methodenaufruf in der System.out.println Anweisung.

Hier mal der Code:

Klasse MainDatum:
Java:
import java.util.Scanner;
public class MainDatum
{
    
    
  public static void main(String[] args)
    {
        do
        {
        Scanner tastatur=new Scanner(System.in);
      System.out.println("Bitte geben Sie den Tag ein");
        int t = tastatur.nextInt();
      System.out.println("Bitte geben Sie den Monat ein");
        int m=tastatur.nextInt();
     System.out.println("Bitte geben Sie den Jahr ein");
        int j=tastatur.nextInt();
        
        Datum eingabe = new Datum(t,m,j);
]        }while (t>=1 && t<=31 && m>=1 && m<=12 && j>=1901 && j<=2099);
      System.out.print("Datum: "+eingabe.getTag());
System.out.print("."+eingabe.getMonat());
System.out.print("."+eingabe.getJahr());
]}
]}



Hier die Klasse Datum:

Java:
public class Datum
{
public int o,m,j,f;
 
public Datum (int initT, int initM, int initJ)
{
    o=initT;
    m=initM;
    j=initJ;
}
public int getFehler()
{
    return f;
}
public int getTag()
{
    return o;
}
public int getMonat()
{
    return m;
}
public int getJahr()
{
    return j;
}
}
 
Zuletzt bearbeitet:
Schau mal, wo du t,m,j definiert hast. Tipp: so wie du es gemacht hast, sind es lokale Variablen und somit für den Schleifen-Kopf nicht sichtbar.
 
Hier ist die Lösung:

Code:
import java.util.Scanner;

public class MainDatum{ 

public static void main(String[] args) { 
Datum eingabe = null;
int t = 0;
int m = 0;
int j = 0;
do { 
Scanner tastatur=new Scanner(System.in); 
System.out.println("Bitte geben Sie den Tag ein"); 
t = tastatur.nextInt(); 
System.out.println("Bitte geben Sie den Monat ein"); 
m=tastatur.nextInt(); 
System.out.println("Bitte geben Sie den Jahr ein"); 
j=tastatur.nextInt(); 
eingabe = new Datum(t,m,j); 

} while (t>=1 && t<=31 && m>=1 && m<=12 && j>=1901 && j<=2099); 
System.out.print("Datum: "+eingabe.getTag());
System.out.print("."+eingabe.getMonat());
System.out.print("."+eingabe.getJahr());
}

}

zweit:

Code:
public class  Datum {

private  int o,m,j,f; 

public Datum (int initT, int initM, int initJ) { 
o=initT; m=initM; j=initJ;
}

public int getFehler(){ 
return f;
}

public int getTag(){ 
return o;
}

public int getMonat(){ 
return m;
}

public int getJahr(){ 
return j;
}

}
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück