Wo liegt der Fehler?

Jones93

Mitglied
Hi Leute,
ich bin neu im Programmieren und ich wollte ein Programm schreiben das mir die Tage seit Christi Geburt ausrechnet und es sagt mir beim kompilieren andauernd "error:cannot find tage"

Java:
import java.util.Scanner;
public class TageSeit
{
	public static void main(String... args)
	{
		Scanner sc = new Scanner(System.in);
		System.out.println("Geben sie den aktuellen Tag an");
		int tag = sc.nextInt();
		System.out.println("Geben sie den aktuellen Monat, als Zahl, an");
		int monat = sc.nextInt();
		System.out.println("Geben sie das aktuelle Jahr an");
		int jahr = sc.nextInt();
		
		if (monat==1) {
			int tage = 31;
			} else if (monat==2) {
				int tage = 31+28;
				} else if (monat==3) {
					int tage = 31+28+31;
					} else if (monat==4) {
						int tage = 31+28+31+30;
						} else if (monat==5) {
							int tage = 31+28+31+30+31;
							} else if (monat==6) {
								int tage = 31+28+31+30+31+30;
								} else if (monat==7) {
									int tage = 31+28+31+30+31+30+31;
									} else if (monat==8) {
										int tage = 31+28+31+30+31+30+31+31;
										} else if (monat==9) {
											int tage = 31+28+31+30+31+30+31+31+30;
											} else if (monat==10) {
												int tage = 31+28+31+30+31+30+31+31+30+31;
												} else if (monat==11) {
													int tage = 31+28+31+30+31+30+31+31+30+31+30;
													} else if (monat==12) {
														int tage = 31+28+31+30+31+30+31+31+30+31+30+31;
														}
														int tagegesamt = tage+(jahr*365)+(4/jahr)+tag;
														System.out.println("Es sind" + tagegesamt + "Tage vergangen seid dem 1.1.0");
	}
}

Liebe Grüße,
Jones
 

njans

Top Contributor
tage ist eine Variable innerhalb deiner if/ifelse Blöcke. Die ist von außen nicht sichtbar. Dazu müsstest du sie außerhalb der Blöcke deklarieren.

P.S. Wenn man als Programmierer auf einen solchen if-else Block trifft, ist man fast immer auf dem Holzweg ;)
 

Fab1

Top Contributor
Tage ist eine variable von dir. Und diese findet er nicht. Du hast die Variable also in einem anderen Bereich {} definiert.

Wenn du innerhalb der {} eine Variable initialisierst, dann ist dieser außerhalb nicht mehr gültig.

Also Variable außerhalb definieren und innerhalb einfach nur initialisieren (Wert zuweisen) dann passt alles.
 

Jones93

Mitglied
Wie deklariere ich das denn am besten außerhalb des if/else blocks?
Wir haben bis jetzt erst die if/else befehle gelernt ich weiß das man mit einer Schleife das ganze einfacher machen könnte aber die haben wir noch nicht in der Vorlesung gehabt. :(
 

njans

Top Contributor
Java:
    import java.util.Scanner;
    public class TageSeit
    {
        public static void main(String... args)
        {
            Scanner sc = new Scanner(System.in);
            System.out.println("Geben sie den aktuellen Tag an");
            int tag = sc.nextInt();
            System.out.println("Geben sie den aktuellen Monat, als Zahl, an");
            int monat = sc.nextInt();
            System.out.println("Geben sie das aktuelle Jahr an");
            int jahr = sc.nextInt();
           
            int tage; // hier muss das hin
           //...
        }
    }
 

Jones93

Mitglied
Jetzt sagt er mir "variable tage might not have been initialized"
Ich habe das jetzt so geschrieben int tage ; und dann das int vor dem tage in dem if Block rausgenommen.
Java:
import java.util.Scanner;
public class TageSeit
{
	public static void main(String... args)
	{
		Scanner sc = new Scanner(System.in);
		System.out.println("Geben sie den aktuellen Tag an");
		int tag = sc.nextInt();
		System.out.println("Geben sie den aktuellen Monat, als Zahl, an");
		int monat = sc.nextInt();
		System.out.println("Geben sie das aktuelle Jahr an");
		int jahr = sc.nextInt();
		
		int tage ; 
		if (monat==1) {
			tage = 31;
			} else if (monat==2) {
				tage = 31+28;
				} else if (monat==3) {
					tage = 31+28+31;
					} else if (monat==4) {
						tage = 31+28+31+30;
						} else if (monat==5) {
							tage = 31+28+31+30+31;
							} else if (monat==6) {
								tage = 31+28+31+30+31+30;
								} else if (monat==7) {
									tage = 31+28+31+30+31+30+31;
									} else if (monat==8) {
										tage = 31+28+31+30+31+30+31+31;
										} else if (monat==9) {
											tage = 31+28+31+30+31+30+31+31+30;
											} else if (monat==10) {
												tage = 31+28+31+30+31+30+31+31+30+31;
												} else if (monat==11) {
													tage = 31+28+31+30+31+30+31+31+30+31+30;
													} else if (monat==12) {
														tage = 31+28+31+30+31+30+31+31+30+31+30+31;
														}
														int tagegesamt = tage+(jahr*365)+(4/jahr)+tag;
														System.out.println("Es sind" + tagegesamt + "Tage vergangen seid dem 1.1.0");
	}
}
 

njans

Top Contributor
Dann hast du die Variable nicht initialisiert, so wie es die Fehlermeldung sagt. Mein Beispiel war nur da um zu zeigen, wo die variable hin muss.
 

Ikaron

Bekanntes Mitglied
Du musst [c]int tage = 0;[/c] schreiben, um anzugeben, was für einen Wert tage hat, falls keiner der Blöcke zutrifft.

Außerderm wäre sowas schlauer:
Java:
public static final int[] tageProMonat = new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    System.out.println("Geben sie den aktuellen Tag an");
    int tag = sc.nextInt();
    System.out.println("Geben sie den aktuellen Monat, als Zahl, an");
    int monat = sc.nextInt();
    System.out.println("Geben sie das aktuelle Jahr an");
    int jahr = sc.nextInt();

    int tage = errechneTageAusJahr(jahr) + errechneTageAusMonat(monat) + tag;
}

public static final int erstesSchaltjahr = 0; // 0: 1. Schaltjahr nach 3 Jahren, 1: 1. Schaltjahr nach 2 Jahren, 2: 1. Schaltjahr nach 1 Jahr, 3: 1. Schaltjahr derzeit

public static int errechneTageAusJahr(int jahr) {

    return (int) ((jahr + erstesSchaltjahr) * 365.25) - (erstesSchaltjahr * 365);
}

// Oder, wenn man davon ausgeht, dass grade das 1. Jahr nach einem Schaltjahr ist:

public static int errechneTageAusJahr(int jahr) {

    return (int) (jahr * 365.25);
}

public static int errechneTageAusMonat(int monat) {

    int amt = (monat - 1) / 12;
    int m = (monat - 1) % 12;

    int t = 0;

    for(int i = 0; i <= m; i++)
        t += tageProMonat[i];

    return amt * t;
}

Ich weiß nicht, ob das jetzt so stimmt, aber so ungefähr sollte es funktionieren.
tag: zwischen -unendlich und +unendlich (theoretisch, natürlich macht Java da einen Strich durch die Rechnung)
monat: zwischen 0 und +unendlich (same)
jahr: zwischen -unendlich und +unendlich (same)
Aber logisch ist es nur, wenn alle Eingaben in N0 liegen.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
ohneInformatik; Dynamische Zinsen. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4
J Anfänger, Fehler; "Der Hund liegt begraben" Java Basics - Anfänger-Themen 3
R Fehlermeldung aber WO liegt der Fehler? Java Basics - Anfänger-Themen 7
W Wo liegt der Fehler? Java Basics - Anfänger-Themen 8
G Input/Output Wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
P wo liegt der Fehler? Java Basics - Anfänger-Themen 2
W Compiler-Fehler Fehler - <identifier> expected, wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
B Compiler-Fehler Wo liegt der Fehler? Java Basics - Anfänger-Themen 3
J Wo liegt nur an dieser einfachen Bedingung mein Fehler? Java Basics - Anfänger-Themen 8
R Schaffe es nicht Random-Programmierung zu vollenden. Wo liegt der Fehler in diesem Code? Java Basics - Anfänger-Themen 13
S GaussJordan in Java, wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
T Wo liegt der Fehler ? -.- Java Basics - Anfänger-Themen 3
P Datentypen Fehler nur wo liegt das Problem? Java Basics - Anfänger-Themen 7
R NullPointerException ,wo liegt der Fehler? Java Basics - Anfänger-Themen 2
D wo liegt der Fehler? (JTable) Java Basics - Anfänger-Themen 11
D Primzahlen ausgeben. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4
M NullPointerException - Fehler beheben, nur, wo liegt er? Java Basics - Anfänger-Themen 13
D Wo liegt der Fehler? Java Basics - Anfänger-Themen 11
F wo liegt der Fehler?? Java Basics - Anfänger-Themen 7
Screen Scanner Arrays wo liegt mein Fehler? Java Basics - Anfänger-Themen 11
Screen Wo liegt der Fehler? Java Basics - Anfänger-Themen 3
K Wo liegt der Fehler wieder ? Java Basics - Anfänger-Themen 14
I String, Split, match, wo liegt mein Fehler ? Java Basics - Anfänger-Themen 4
K Hallo, woran liegt der Fehler ? Java Basics - Anfänger-Themen 6
M Felder (Wo liegt der Fehler?) Java Basics - Anfänger-Themen 2
P Wo liegt der Fehler? *verzweifel* Java Basics - Anfänger-Themen 10
Z Wo liegt der Fehler? Java Basics - Anfänger-Themen 8
S Array bleibt leer, wo liegt mein Fehler? Verzeichnisinhalt s Java Basics - Anfänger-Themen 8
E Wo liegt hier der Fehler? Java Basics - Anfänger-Themen 13
L wo liegt hier der fehler? Java Basics - Anfänger-Themen 3
R Wo liegt der Fehler? Java Basics - Anfänger-Themen 10
W Wo liegt denn heir der Fehler? Java Basics - Anfänger-Themen 10
N wo liegt daran der fehler? Java Basics - Anfänger-Themen 6
H weiss nicht wo hier der fehler liegt Java Basics - Anfänger-Themen 3
A wo liegt der fehler im programm? Java Basics - Anfänger-Themen 9
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
M BerechneEtwas Weiss jemand woran es liegt Java Basics - Anfänger-Themen 8
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
A Class not found - Jar liegt am classpath Java Basics - Anfänger-Themen 2
M Wo liegt der Unterschied? Deklaration Klasse oder Konstruktur Java Basics - Anfänger-Themen 3
M Liegt hier bereits ein Bad Smell vor? Java Basics - Anfänger-Themen 9
J ResultSet.getStrin - doch kein String? oder wo liegt das Problem? Java Basics - Anfänger-Themen 3
A Datum prüfen, ob es vor einem anderen Datum liegt Java Basics - Anfänger-Themen 2
K OOP Methoden überladen, wo liegt das Problem? Java Basics - Anfänger-Themen 22
I OOP This-Referenzs > wo liegt mein Denkfehler? Java Basics - Anfänger-Themen 24
B Class wird nicht gefunde obwohl sie im gleichen Ordner liegt Java Basics - Anfänger-Themen 8
G Variable welche in anderer Klasse liegt, verändern. Java Basics - Anfänger-Themen 2
J Arrays: Wo liegt das Problem? Java Basics - Anfänger-Themen 6
H In welchem Ordner liegt das jar file? Java Basics - Anfänger-Themen 2
M Wo liegt der Quelltext von System.out.println() Java Basics - Anfänger-Themen 3
M JTable updaten woran liegt es bloß? Java Basics - Anfänger-Themen 2
F Kann mir jemand bei dem Fehler helfen? Java Basics - Anfänger-Themen 6
Juelin jedit Fehler beim starten Java Basics - Anfänger-Themen 2
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
E Matrizenmultiplikation Fehler Java Basics - Anfänger-Themen 0
Z Fehler Zeiterfassungsprogramm Anzeige Java Basics - Anfänger-Themen 3
C SwingWorker mit Fehler Java Basics - Anfänger-Themen 2
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
G Compiler-Fehler Fehler in Zeile 1 beheben, wie? Java Basics - Anfänger-Themen 9
W Fehler in der Datei pom.xml Java Basics - Anfänger-Themen 19
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
Fiedelbambu deriveFont Fehler wer kann Helfen? Java Basics - Anfänger-Themen 4
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
Lion.King Fehler in double und int Java Basics - Anfänger-Themen 7
H BlueJ: was genau ist hier der Fehler? Java Basics - Anfänger-Themen 14
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
D Datentypen LocalDate.parse() ergibt Fehler Java Basics - Anfänger-Themen 5
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
N Fehler "Cannot instantiate the type" Java Basics - Anfänger-Themen 3
L Ich weis nicht was der Fehler ist! Java Basics - Anfänger-Themen 14
L30nS JNI Fehler, JRE und JDK Java Basics - Anfänger-Themen 8
E Executable jar file fehler Java Basics - Anfänger-Themen 9
S Fehler beim Programm Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
J Syntax-Fehler? Java Basics - Anfänger-Themen 2
Jose05 Fehler im Programm feststellen Java Basics - Anfänger-Themen 2
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
I Fehler bei for-Schleife Java Basics - Anfänger-Themen 6
lol5443 Tic Tac Toe Fehler Java Basics - Anfänger-Themen 5
K Fehler bei der Implementierung Java Basics - Anfänger-Themen 6
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
J Fehler bei array aus anderer Klasse Java Basics - Anfänger-Themen 3
H Fehler bei integer Division Java Basics - Anfänger-Themen 28
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
N Was bedeutet dieser Fehler Java Basics - Anfänger-Themen 2
fuerteb Compiler-Fehler Methode wird nicht bzw. als Fehler erkannt Java Basics - Anfänger-Themen 4
Lion.King Fehler Java Basics - Anfänger-Themen 5
AlexG. Nullpointer exeption Fehler Java Basics - Anfänger-Themen 0
C Fehler im Code Java Basics - Anfänger-Themen 10
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
V Wer findet den Fehler :) Java Basics - Anfänger-Themen 12
B ArrayIndexOutOfBoundsException, ich finde den Fehler nicht? Java Basics - Anfänger-Themen 10
A Compiler Fehler - not a statement Java Basics - Anfänger-Themen 2
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben