Bin ein Informatik-Student im ersten Semester und ich muss zu morgen eine Programmier-Aufgabe abgeben.
Bei dieser wird der User nach einem Datum gefragt und das Programm soll unterscheiden können ob es ein String oder ein int gegeben wurde.
Wenn ein String gegeben wurde soll eine Benachrichtigung kommen und die Abfrage soll sich wiederholen.
import java.util.*;
public class Jahreszeit {
public static void main (String[] args) {
Scanner console = new Scanner(System.in);
boolean echtesDatum;
//boolean bloedsinn;
System.out.println("tag (1-31): ")
int tag = echterTag(console);
int monat;
do {
} while(!echtesDatum)
}
public static int echterTag(Scanner console) {
do {
int tag = console.
}
public static int ganzZahlLesen() {
boolean echtesDatum;
Scanner console = new Scanner(System.in);
do {
System.out.println("Tag (1-31): ");
int tag = console.nextInt();
System.out.println("Monat (1-12): ");
int monat = console.nextIn();
echtesDatum = keinBloedsinnAlsDatum(tag, monat);
if (echtesDatum) {
echtesDatum = ganzeZahlInBereich(tag, monat);
}
} while (!echtesDatum);
}
public static boolean keinBloedsinnAlsDatum(int tag, int monat) {
}
public static boolean ganzeZahlInBereich(int tag, int monat) {
String falsch = "Datum ist ungültig. Wiederholen. ";
if (tag < 1 || tag > 31 || monat < 1 || monat > 12) {
System.out.println(falsch);
return false;
}
switch (monat) {
case 4: case 6: case 9: case 11:
if(tag == 31) {
System.out.println(falsch);
return false;
} else {
return true;
}
break;
case 28:
if (tag > 29) {
System.out.println(falsch);
return false;
} else {
return true;
}
break;
default:
return true;
}
}
}
Erste Übung: Im Forum Code-Tags verwenden, damit man den Code auch lesen kann.
Zweitens: Was ist deine Frage?
Falls es um die Erkennung Zahl oder String geht ... einfach mal versuchen, den Eingabestring in eine Zahl umzuwanden. Wenn das nicht klappt (Exception), als String behandeln.
Falls es um die Erkennung Zahl oder String geht ... einfach mal versuchen, den Eingabestring in eine Zahl umzuwanden. Wenn das nicht klappt (Exception), als String behandeln.
Das ist auf jeden Fall eine Möglichkeit. Aber die Programmsteuerung über Exceptions ist immer etwas unschön und da kann man natürlich auch andere Wege gehen:
a) Einfach Text einlesen und dann selbst prüfen, ob es eine Zahl ist (z.B. über regulären Ausdruck)
b) Wenn man Eingaben über Scanner macht, dann kann man auch die Funktionalität vom Scanner nutzen (hasNext, hasNextInt, ...).
Erste Übung: Im Forum Code-Tags verwenden, damit man den Code auch lesen kann.
Zweitens: Was ist deine Frage?
Falls es um die Erkennung Zahl oder String geht ... einfach mal versuchen, den Eingabestring in eine Zahl umzuwanden. Wenn das nicht klappt (Exception), als String behandeln.
Verzeihung. Wusste nicht wie ich meinen Code einfügen kann.
Bezüglich meiner Frage.
Ich habe leider vergessen, zu sagen dass das Programm zwischen String und int input unterscheiden soll.
Wenn ein string kommt, soll eine falschmeldung kommen und die schleifen von Vorne anfangen.
Ich habe leider vergessen, zu sagen dass das Programm zwischen String und int input unterscheiden soll.
Wenn ein string kommt, soll eine falschmeldung kommen und die schleifen von Vorne anfangen.
DAS hab ich schon gelesen, das ist ja die Aufgabe. Aber was ist die Frage dazu?
Sowohl Kneitzel und ich haben jeweils eine Möglichkeit genannt, zwischen Zahl und Wert zu unterscheiden, ein Teil ist also schon gelöst.
Jetzt musst du dir Gedanken um die Schleife machen. Was passiert darin, wann bricht sie ab, bzw. wann wiederholt sie?
Sobald du das in Worten sagen kannst, kannst du den Code fast 1:1 umsetzen.