class ZahlAusdenken {
public static void main(String[] args) {
int startzahl;
if (args.length == 0) {
startzahl = 7;
}
else {
startzahl = Integer.parseInt(args[0]);
}
/* Wir nehmen das erste Argument von den Uebergabeparametern und wandeln es in eine Integer-Zahl um */
int ergebnis = startzahl;
/* Wir deklarieren eine neue Variable Ergebnis und initialisieren sie mit dem Wert von vorher */
if (ergebnis > 0) {
/* Wenn das Ergebnis größer 0 ist, addieren wir zwei */
ergebnis = ergebnis + 2;
} else {
/* Wenn das ERgebnis kleiner Null ist - machen wir die Zahl positiv und addieren 2*/
ergebnis = ergebnis * (-1) + 2;
}
while (ergebnis > 2) {
/* Jetzt kommt eine Schleife, solange das Ergebnis > 2 ist, subtrahieren wir 2*/
ergebnis = ergebnis - 2;
}
int arbeiten = 4;
/* Das ist für mich ein ungewöhnliches Konstrukt und soll wohl die Programmzeit erhöhen*/
/* Wir haben es mit einer for-Schleife Zu tun, bei der wir einen Schleifenzähler i haben - und diesesn solange mit 2 inkrementieren, bis wir bei 20 sind. Dabei wird arbeiten jedes Mal mit Starzahl inkrementiert */
for (int i = 2; i <= 20; i = i + 2) {
arbeiten = arbeiten + startzahl;
}
switch (ergebnis) {
/* So, hier wird jetzt das Ergebnis ausgeweertet, und das ergebibt zur vorherigen Schleife wieder einen Sinn
Wir haben solange von Ergebnis 2 abgezogen, solange Ergebnis größer 2 ist.
Nehmen wir an Ergebnis ist am Ende 3: Dan haben wir ein 1. Bei 5 ebenso, weil wir kommen zur 3
Bei 4, -2 macht 2. Nun heißt es aber in der Schleife > 2. 2 ist nicht größer 2. Aber jetzt könenn wir auswerten. Wenn wir 0 haben, das geht de facto nicht, weil größer zwei. 1, kann bei ungeraden Zahlen sein, 2 bei geraden */
case 0:
System.out.println("Das kann nicht sein!");
break;
case 1:
System.out.println("Die urspruengliche Zahl war ungerade!");
break;
case 2:
System.out.println("Die urspruengliche Zahl war gerade!");
break;
default:
System.out.println("Fehler!");
}
System.out.println("startzahl = " + startzahl);
}
}