# Fehler: cannot be resolved



## ShastyMcNastee (7. Dezember 2007)

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:

```
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:


```
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;
}
}
```


----------



## vites (7. Dezember 2007)

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.


----------



## lernen.2007 (7. Dezember 2007)

Hier ist die Lösung:


```
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:


```
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;
}

}
```


----------



## ShastyMcNastee (8. Dezember 2007)

Ah sicher. War mal wieder zu blind um das selber zu sehen.
Danke euch beiden.


----------

