Aufgabe mit Schleifen

WonderWoman

Mitglied
Huhu 🙂
da es vorher schon so toll geklappt hat, hoffe ich das mir nochmal jmd so schnell helfen kann.

Der erste Teil meine Aufgabe läuft ohne Probleme. (Abgesehen von der Tatsache das ich nicht prüfe ob die Tage dem Maxium des jeweiligen Monat entsprechen).Es geht darum ein Datum einzulesen und zu überprüfen ob es gültig ist.

Java:
public class DatumTest {

	public static void main(String[] args) {
		
		int day = InputTools.readInteger("Bitte geben Sie einen Tag ein: ");
		
		if (day <= 1 || day >= 31){
			System.out.println("Ungültiger Tag!"); return;
		}
		
		
	int month = InputTools.readInteger("Bitte geben Sie einen Monat ein: ");
		
		if (month <= 1 || month >= 12){
			System.out.println("Ungültiger Monat!");return;
		}
		

		System.out.println("Das eingegebene Datum lautet: " + day + "." + month);

Im zweiten Teil geht es darum, das überprüft werden soll, ob das eingegebene Datum zwischen dem 17.3 und dem 28.8 liegt. Leider kommt bei mir immer die Ausgabe das es zwischen diesen Daten liegt. Hier mein Code dazu.

Java:
if ((day >= 17 || day <= 28) && (month >= 3 || month <= 8 )){
		System.out.println("Das eingegebene Datum: "  + day + "." + month + " liegt zwischen dem 17.3 und dem 28.8.");

	}
	
	else {
		System.out.println("Das eingegebene Datum: "  + day + "." + month + " liegt nicht zwischen dem 17.3 und dem 28.8.");
	}
	
}
}

Ich vermute das ich bei den Schleifen iwas verhau, aber ich komm leider nicht drauf an was es liegen könnte.

Vielleicht weiss ja jmd Rat 🙂
Danke schonmal.
 
Du hast bei der If-Bedingung einen Fehler gemacht. Guck dir mal genau an, was sie bedeutet und überprüfe, welche Zahlen den Teilbedingungen gerecht werden.

Die Lösung ist aber sehr einfach und du wirst ziemlich schnell drauf kommen.
Ein Tipp: Es liegt an den Logikoperatoren.
 
Habs 😉

Java:
if ((day >= 17 && day <= 28) && (month >= 3 && month <= 8 ))

Manchmal sieht man einfach den Wald vor lauter Bäumen nicht, vielen Dank!
 
Sorry.
Passiert, wenn man die Verzweigung versucht im Kopf zu durchlaufen. 😳
Hier mein Vorschlag (Ich hoffe, jetzt passt dat):

Java:
if(((month == 3) || (month == 8)) &&  ((day > 16) && (day < 29))){
		
	System.out.println("Das eingegebene Datum: "  + day + "." + month + " liegt zwischen dem 17.3 und dem 28.8.");
		}
else if((month > 3) && (month < 8)){
		
	System.out.println("Das eingegebene Datum: "  + day + "." + month + " liegt zwischen dem 17.3 und dem 28.8.");
		}
else{
		
	System.out.println("Das eingegebene Datum: "  + day + "." + month + " liegt nicht zwischen dem 17.3 und dem 28.8.");
		}
 
Hoppla da war noch viel mehr Denkfehler als gedacht drin.
Ich probiers erst mal selber und dann schau ich mir deine Lösung an. Wenn ich net schon wieder 5 andere Probleme hätte 😀
Danke 🙂
 
Zuletzt bearbeitet:
bitte versteht meinen Post nicht als "Klugs******en" oder "kleinlich". aber der Thread hat bisher nichts mit schleifen am Hut 😉

ich möchte nur das sich der Threadstarter nicht mal irgendwo blamiert wegen "if-schleifen"

viel erfolg :toll:
 
Da hast du wohl vollkommen recht, und keine sorge ich bin froh auf so etwas aufmerksam gemacht zu werden 🙂
Richtig müsste es dann wohl if-Abfrage heissen und natürlich nicht if-Schleife oder? 🙂
Danke
 

Zurück
Oben